]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-111178: Fix function signatures in iterobject.c (#131163)
authorVictor Stinner <vstinner@python.org>
Thu, 13 Mar 2025 09:42:59 +0000 (10:42 +0100)
committerGitHub <noreply@github.com>
Thu, 13 Mar 2025 09:42:59 +0000 (10:42 +0100)
Objects/iterobject.c

index ebb342ff1092224611e0d830ad9c07ab0ca277a5..87e30d6922ca567d8b7155e98d0015f859ad39bd 100644 (file)
@@ -31,16 +31,18 @@ PySeqIter_New(PyObject *seq)
 }
 
 static void
-iter_dealloc(seqiterobject *it)
+iter_dealloc(PyObject *op)
 {
+    seqiterobject *it = (seqiterobject*)op;
     _PyObject_GC_UNTRACK(it);
     Py_XDECREF(it->it_seq);
     PyObject_GC_Del(it);
 }
 
 static int
-iter_traverse(seqiterobject *it, visitproc visit, void *arg)
+iter_traverse(PyObject *op, visitproc visit, void *arg)
 {
+    seqiterobject *it = (seqiterobject*)op;
     Py_VISIT(it->it_seq);
     return 0;
 }
@@ -79,8 +81,9 @@ iter_iternext(PyObject *iterator)
 }
 
 static PyObject *
-iter_len(seqiterobject *it, PyObject *Py_UNUSED(ignored))
+iter_len(PyObject *op, PyObject *Py_UNUSED(ignored))
 {
+    seqiterobject *it = (seqiterobject*)op;
     Py_ssize_t seqsize, len;
 
     if (it->it_seq) {
@@ -102,8 +105,9 @@ iter_len(seqiterobject *it, PyObject *Py_UNUSED(ignored))
 PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
 
 static PyObject *
-iter_reduce(seqiterobject *it, PyObject *Py_UNUSED(ignored))
+iter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
 {
+    seqiterobject *it = (seqiterobject*)op;
     PyObject *iter = _PyEval_GetBuiltin(&_Py_ID(iter));
 
     /* _PyEval_GetBuiltin can invoke arbitrary code,
@@ -119,8 +123,9 @@ iter_reduce(seqiterobject *it, PyObject *Py_UNUSED(ignored))
 PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
 
 static PyObject *
-iter_setstate(seqiterobject *it, PyObject *state)
+iter_setstate(PyObject *op, PyObject *state)
 {
+    seqiterobject *it = (seqiterobject*)op;
     Py_ssize_t index = PyLong_AsSsize_t(state);
     if (index == -1 && PyErr_Occurred())
         return NULL;
@@ -135,9 +140,9 @@ iter_setstate(seqiterobject *it, PyObject *state)
 PyDoc_STRVAR(setstate_doc, "Set state information for unpickling.");
 
 static PyMethodDef seqiter_methods[] = {
-    {"__length_hint__", (PyCFunction)iter_len, METH_NOARGS, length_hint_doc},
-    {"__reduce__", (PyCFunction)iter_reduce, METH_NOARGS, reduce_doc},
-    {"__setstate__", (PyCFunction)iter_setstate, METH_O, setstate_doc},
+    {"__length_hint__", iter_len, METH_NOARGS, length_hint_doc},
+    {"__reduce__", iter_reduce, METH_NOARGS, reduce_doc},
+    {"__setstate__", iter_setstate, METH_O, setstate_doc},
     {NULL,              NULL}           /* sentinel */
 };
 
@@ -147,7 +152,7 @@ PyTypeObject PySeqIter_Type = {
     sizeof(seqiterobject),                      /* tp_basicsize */
     0,                                          /* tp_itemsize */
     /* methods */
-    (destructor)iter_dealloc,                   /* tp_dealloc */
+    iter_dealloc,                               /* tp_dealloc */
     0,                                          /* tp_vectorcall_offset */
     0,                                          /* tp_getattr */
     0,                                          /* tp_setattr */
@@ -164,7 +169,7 @@ PyTypeObject PySeqIter_Type = {
     0,                                          /* tp_as_buffer */
     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,    /* tp_flags */
     0,                                          /* tp_doc */
-    (traverseproc)iter_traverse,                /* tp_traverse */
+    iter_traverse,                              /* tp_traverse */
     0,                                          /* tp_clear */
     0,                                          /* tp_richcompare */
     0,                                          /* tp_weaklistoffset */