Skip to content

Commit ed8675c

Browse files
authored
gh-111178: Fix function signatures of unicodeiter (#130684)
1 parent 15d926b commit ed8675c

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

Objects/unicodeobject.c

+23-19
Original file line numberDiff line numberDiff line change
@@ -16025,23 +16025,26 @@ typedef struct {
1602516025
} unicodeiterobject;
1602616026

1602716027
static void
16028-
unicodeiter_dealloc(unicodeiterobject *it)
16028+
unicodeiter_dealloc(PyObject *op)
1602916029
{
16030+
unicodeiterobject *it = (unicodeiterobject *)op;
1603016031
_PyObject_GC_UNTRACK(it);
1603116032
Py_XDECREF(it->it_seq);
1603216033
PyObject_GC_Del(it);
1603316034
}
1603416035

1603516036
static int
16036-
unicodeiter_traverse(unicodeiterobject *it, visitproc visit, void *arg)
16037+
unicodeiter_traverse(PyObject *op, visitproc visit, void *arg)
1603716038
{
16039+
unicodeiterobject *it = (unicodeiterobject *)op;
1603816040
Py_VISIT(it->it_seq);
1603916041
return 0;
1604016042
}
1604116043

1604216044
static PyObject *
16043-
unicodeiter_next(unicodeiterobject *it)
16045+
unicodeiter_next(PyObject *op)
1604416046
{
16047+
unicodeiterobject *it = (unicodeiterobject *)op;
1604516048
PyObject *seq;
1604616049

1604716050
assert(it != NULL);
@@ -16064,8 +16067,9 @@ unicodeiter_next(unicodeiterobject *it)
1606416067
}
1606516068

1606616069
static PyObject *
16067-
unicode_ascii_iter_next(unicodeiterobject *it)
16070+
unicode_ascii_iter_next(PyObject *op)
1606816071
{
16072+
unicodeiterobject *it = (unicodeiterobject *)op;
1606916073
assert(it != NULL);
1607016074
PyObject *seq = it->it_seq;
1607116075
if (seq == NULL) {
@@ -16086,8 +16090,9 @@ unicode_ascii_iter_next(unicodeiterobject *it)
1608616090
}
1608716091

1608816092
static PyObject *
16089-
unicodeiter_len(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
16093+
unicodeiter_len(PyObject *op, PyObject *Py_UNUSED(ignored))
1609016094
{
16095+
unicodeiterobject *it = (unicodeiterobject *)op;
1609116096
Py_ssize_t len = 0;
1609216097
if (it->it_seq)
1609316098
len = PyUnicode_GET_LENGTH(it->it_seq) - it->it_index;
@@ -16097,8 +16102,9 @@ unicodeiter_len(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
1609716102
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
1609816103

1609916104
static PyObject *
16100-
unicodeiter_reduce(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
16105+
unicodeiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
1610116106
{
16107+
unicodeiterobject *it = (unicodeiterobject *)op;
1610216108
PyObject *iter = _PyEval_GetBuiltin(&_Py_ID(iter));
1610316109

1610416110
/* _PyEval_GetBuiltin can invoke arbitrary code,
@@ -16120,8 +16126,9 @@ unicodeiter_reduce(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))
1612016126
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
1612116127

1612216128
static PyObject *
16123-
unicodeiter_setstate(unicodeiterobject *it, PyObject *state)
16129+
unicodeiter_setstate(PyObject *op, PyObject *state)
1612416130
{
16131+
unicodeiterobject *it = (unicodeiterobject *)op;
1612516132
Py_ssize_t index = PyLong_AsSsize_t(state);
1612616133
if (index == -1 && PyErr_Occurred())
1612716134
return NULL;
@@ -16138,12 +16145,9 @@ unicodeiter_setstate(unicodeiterobject *it, PyObject *state)
1613816145
PyDoc_STRVAR(setstate_doc, "Set state information for unpickling.");
1613916146

1614016147
static PyMethodDef unicodeiter_methods[] = {
16141-
{"__length_hint__", (PyCFunction)unicodeiter_len, METH_NOARGS,
16142-
length_hint_doc},
16143-
{"__reduce__", (PyCFunction)unicodeiter_reduce, METH_NOARGS,
16144-
reduce_doc},
16145-
{"__setstate__", (PyCFunction)unicodeiter_setstate, METH_O,
16146-
setstate_doc},
16148+
{"__length_hint__", unicodeiter_len, METH_NOARGS, length_hint_doc},
16149+
{"__reduce__", unicodeiter_reduce, METH_NOARGS, reduce_doc},
16150+
{"__setstate__", unicodeiter_setstate, METH_O, setstate_doc},
1614716151
{NULL, NULL} /* sentinel */
1614816152
};
1614916153

@@ -16153,7 +16157,7 @@ PyTypeObject PyUnicodeIter_Type = {
1615316157
sizeof(unicodeiterobject), /* tp_basicsize */
1615416158
0, /* tp_itemsize */
1615516159
/* methods */
16156-
(destructor)unicodeiter_dealloc, /* tp_dealloc */
16160+
unicodeiter_dealloc,/* tp_dealloc */
1615716161
0, /* tp_vectorcall_offset */
1615816162
0, /* tp_getattr */
1615916163
0, /* tp_setattr */
@@ -16170,12 +16174,12 @@ PyTypeObject PyUnicodeIter_Type = {
1617016174
0, /* tp_as_buffer */
1617116175
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
1617216176
0, /* tp_doc */
16173-
(traverseproc)unicodeiter_traverse, /* tp_traverse */
16177+
unicodeiter_traverse, /* tp_traverse */
1617416178
0, /* tp_clear */
1617516179
0, /* tp_richcompare */
1617616180
0, /* tp_weaklistoffset */
1617716181
PyObject_SelfIter, /* tp_iter */
16178-
(iternextfunc)unicodeiter_next, /* tp_iternext */
16182+
unicodeiter_next, /* tp_iternext */
1617916183
unicodeiter_methods, /* tp_methods */
1618016184
0,
1618116185
};
@@ -16184,12 +16188,12 @@ PyTypeObject _PyUnicodeASCIIIter_Type = {
1618416188
PyVarObject_HEAD_INIT(&PyType_Type, 0)
1618516189
.tp_name = "str_ascii_iterator",
1618616190
.tp_basicsize = sizeof(unicodeiterobject),
16187-
.tp_dealloc = (destructor)unicodeiter_dealloc,
16191+
.tp_dealloc = unicodeiter_dealloc,
1618816192
.tp_getattro = PyObject_GenericGetAttr,
1618916193
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
16190-
.tp_traverse = (traverseproc)unicodeiter_traverse,
16194+
.tp_traverse = unicodeiter_traverse,
1619116195
.tp_iter = PyObject_SelfIter,
16192-
.tp_iternext = (iternextfunc)unicode_ascii_iter_next,
16196+
.tp_iternext = unicode_ascii_iter_next,
1619316197
.tp_methods = unicodeiter_methods,
1619416198
};
1619516199

0 commit comments

Comments
 (0)