From 7505607ae764d2095f15fcfb1a0f89843231ba7e Mon Sep 17 00:00:00 2001 From: Alexandre Vassalotti Date: Tue, 10 Jun 2008 04:03:04 +0000 Subject: Issue 2582: Fix pickling of range objects. --- Objects/rangeobject.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Objects/rangeobject.c') diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index cd5a804fd9..f9a9cc9930 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -252,6 +252,14 @@ range_repr(rangeobject *r) r->start, r->stop, r->step); } +/* Pickling support */ +static PyObject * +range_reduce(rangeobject *r, PyObject *args) +{ + return Py_BuildValue("(O(OOO))", Py_TYPE(r), + r->start, r->stop, r->step); +} + static PySequenceMethods range_as_sequence = { (lenfunc)range_length, /* sq_length */ 0, /* sq_concat */ @@ -269,6 +277,7 @@ PyDoc_STRVAR(reverse_doc, static PyMethodDef range_methods[] = { {"__reversed__", (PyCFunction)range_reverse, METH_NOARGS, reverse_doc}, + {"__reduce__", (PyCFunction)range_reduce, METH_VARARGS}, {NULL, NULL} /* sentinel */ }; -- cgit v1.2.1