https://github.com/python/cpython/commit/50e9eba32cdade34350a9f29ff2139a35e8876c0 commit: 50e9eba32cdade34350a9f29ff2139a35e8876c0 branch: main author: Victor Stinner <vstin...@python.org> committer: vstinner <vstin...@python.org> date: 2025-03-13T09:56:06Z summary:
gh-111178: Fix function signatures in rangeobject.c (#131161) files: M Objects/rangeobject.c diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 299dcd5232453d..d5cc2b09427dee 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -825,8 +825,9 @@ PyTypeObject PyRange_Type = { */ static PyObject * -rangeiter_next(_PyRangeIterObject *r) +rangeiter_next(PyObject *op) { + _PyRangeIterObject *r = (_PyRangeIterObject*)op; if (r->len > 0) { long result = r->start; r->start = result + r->step; @@ -837,8 +838,9 @@ rangeiter_next(_PyRangeIterObject *r) } static PyObject * -rangeiter_len(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) +rangeiter_len(PyObject *op, PyObject *Py_UNUSED(ignored)) { + _PyRangeIterObject *r = (_PyRangeIterObject*)op; return PyLong_FromLong(r->len); } @@ -846,8 +848,9 @@ PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); static PyObject * -rangeiter_reduce(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) +rangeiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored)) { + _PyRangeIterObject *r = (_PyRangeIterObject*)op; PyObject *start=NULL, *stop=NULL, *step=NULL; PyObject *range; @@ -876,8 +879,9 @@ rangeiter_reduce(_PyRangeIterObject *r, PyObject *Py_UNUSED(ignored)) } static PyObject * -rangeiter_setstate(_PyRangeIterObject *r, PyObject *state) +rangeiter_setstate(PyObject *op, PyObject *state) { + _PyRangeIterObject *r = (_PyRangeIterObject*)op; long index = PyLong_AsLong(state); if (index == -1 && PyErr_Occurred()) return NULL; @@ -895,12 +899,9 @@ PyDoc_STRVAR(reduce_doc, "Return state information for pickling."); PyDoc_STRVAR(setstate_doc, "Set state information for unpickling."); static PyMethodDef rangeiter_methods[] = { - {"__length_hint__", (PyCFunction)rangeiter_len, METH_NOARGS, - length_hint_doc}, - {"__reduce__", (PyCFunction)rangeiter_reduce, METH_NOARGS, - reduce_doc}, - {"__setstate__", (PyCFunction)rangeiter_setstate, METH_O, - setstate_doc}, + {"__length_hint__", rangeiter_len, METH_NOARGS, length_hint_doc}, + {"__reduce__", rangeiter_reduce, METH_NOARGS, reduce_doc}, + {"__setstate__", rangeiter_setstate, METH_O, setstate_doc}, {NULL, NULL} /* sentinel */ }; @@ -932,7 +933,7 @@ PyTypeObject PyRangeIter_Type = { 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ PyObject_SelfIter, /* tp_iter */ - (iternextfunc)rangeiter_next, /* tp_iternext */ + rangeiter_next, /* tp_iternext */ rangeiter_methods, /* tp_methods */ 0, /* tp_members */ }; @@ -988,15 +989,17 @@ typedef struct { } longrangeiterobject; static PyObject * -longrangeiter_len(longrangeiterobject *r, PyObject *no_args) +longrangeiter_len(PyObject *op, PyObject *Py_UNUSED(ignored)) { + longrangeiterobject *r = (longrangeiterobject*)op; Py_INCREF(r->len); return r->len; } static PyObject * -longrangeiter_reduce(longrangeiterobject *r, PyObject *Py_UNUSED(ignored)) +longrangeiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored)) { + longrangeiterobject *r = (longrangeiterobject*)op; PyObject *product, *stop=NULL; PyObject *range; @@ -1023,8 +1026,9 @@ longrangeiter_reduce(longrangeiterobject *r, PyObject *Py_UNUSED(ignored)) } static PyObject * -longrangeiter_setstate(longrangeiterobject *r, PyObject *state) +longrangeiter_setstate(PyObject *op, PyObject *state) { + longrangeiterobject *r = (longrangeiterobject*)op; PyObject *zero = _PyLong_GetZero(); // borrowed reference int cmp; @@ -1062,18 +1066,16 @@ longrangeiter_setstate(longrangeiterobject *r, PyObject *state) } static PyMethodDef longrangeiter_methods[] = { - {"__length_hint__", (PyCFunction)longrangeiter_len, METH_NOARGS, - length_hint_doc}, - {"__reduce__", (PyCFunction)longrangeiter_reduce, METH_NOARGS, - reduce_doc}, - {"__setstate__", (PyCFunction)longrangeiter_setstate, METH_O, - setstate_doc}, + {"__length_hint__", longrangeiter_len, METH_NOARGS, length_hint_doc}, + {"__reduce__", longrangeiter_reduce, METH_NOARGS, reduce_doc}, + {"__setstate__", longrangeiter_setstate, METH_O, setstate_doc}, {NULL, NULL} /* sentinel */ }; static void -longrangeiter_dealloc(longrangeiterobject *r) +longrangeiter_dealloc(PyObject *op) { + longrangeiterobject *r = (longrangeiterobject*)op; Py_XDECREF(r->start); Py_XDECREF(r->step); Py_XDECREF(r->len); @@ -1081,8 +1083,9 @@ longrangeiter_dealloc(longrangeiterobject *r) } static PyObject * -longrangeiter_next(longrangeiterobject *r) +longrangeiter_next(PyObject *op) { + longrangeiterobject *r = (longrangeiterobject*)op; if (PyObject_RichCompareBool(r->len, _PyLong_GetZero(), Py_GT) != 1) return NULL; @@ -1107,7 +1110,7 @@ PyTypeObject PyLongRangeIter_Type = { sizeof(longrangeiterobject), /* tp_basicsize */ 0, /* tp_itemsize */ /* methods */ - (destructor)longrangeiter_dealloc, /* tp_dealloc */ + longrangeiter_dealloc, /* tp_dealloc */ 0, /* tp_vectorcall_offset */ 0, /* tp_getattr */ 0, /* tp_setattr */ @@ -1129,7 +1132,7 @@ PyTypeObject PyLongRangeIter_Type = { 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ PyObject_SelfIter, /* tp_iter */ - (iternextfunc)longrangeiter_next, /* tp_iternext */ + longrangeiter_next, /* tp_iternext */ longrangeiter_methods, /* tp_methods */ 0, }; _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com