mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
gh-111178: Fix function signatures in iterobject.c (#131163)
This commit is contained in:
parent
68922ace4d
commit
36978f7ef3
1 changed files with 15 additions and 10 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue