*/
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;
}
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);
}
"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;
}
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;
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 */
};
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 */
};
} 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;
}
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;
}
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);
}
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;
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 */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
PyObject_SelfIter, /* tp_iter */
- (iternextfunc)longrangeiter_next, /* tp_iternext */
+ longrangeiter_next, /* tp_iternext */
longrangeiter_methods, /* tp_methods */
0,
};