gh-111178: Fix function signatures in rangeobject.c (#131101)

This commit is contained in:
Victor Stinner 2025-03-12 07:29:20 +01:00 committed by GitHub
parent 52756c30db
commit 48cca72a7f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -164,8 +164,9 @@ These are exactly the valid indices for a list of 4 elements.\n\
When step is given, it specifies the increment (or decrement).");
static void
range_dealloc(rangeobject *r)
range_dealloc(PyObject *op)
{
rangeobject *r = (rangeobject*)op;
Py_DECREF(r->start);
Py_DECREF(r->stop);
Py_DECREF(r->step);
@ -304,8 +305,9 @@ compute_range_length(PyObject *start, PyObject *stop, PyObject *step)
}
static Py_ssize_t
range_length(rangeobject *r)
range_length(PyObject *op)
{
rangeobject *r = (rangeobject*)op;
return PyLong_AsSsize_t(r->length);
}
@ -383,8 +385,9 @@ compute_range_item(rangeobject *r, PyObject *arg)
}
static PyObject *
range_item(rangeobject *r, Py_ssize_t i)
range_item(PyObject *op, Py_ssize_t i)
{
rangeobject *r = (rangeobject*)op;
PyObject *res, *arg = PyLong_FromSsize_t(i);
if (!arg) {
return NULL;
@ -480,8 +483,9 @@ range_contains_long(rangeobject *r, PyObject *ob)
}
static int
range_contains(rangeobject *r, PyObject *ob)
range_contains(PyObject *self, PyObject *ob)
{
rangeobject *r = (rangeobject*)self;
if (PyLong_CheckExact(ob) || PyBool_Check(ob))
return range_contains_long(r, ob);
@ -569,8 +573,9 @@ range_richcompare(PyObject *self, PyObject *other, int op)
return hash((len(r), r.start, r.step))
*/
static Py_hash_t
range_hash(rangeobject *r)
range_hash(PyObject *op)
{
rangeobject *r = (rangeobject*)op;
PyObject *t;
Py_hash_t result = -1;
int cmp_result;
@ -605,8 +610,9 @@ range_hash(rangeobject *r)
}
static PyObject *
range_count(rangeobject *r, PyObject *ob)
range_count(PyObject *self, PyObject *ob)
{
rangeobject *r = (rangeobject*)self;
if (PyLong_CheckExact(ob) || PyBool_Check(ob)) {
int result = range_contains_long(r, ob);
if (result == -1)
@ -622,8 +628,9 @@ range_count(rangeobject *r, PyObject *ob)
}
static PyObject *
range_index(rangeobject *r, PyObject *ob)
range_index(PyObject *self, PyObject *ob)
{
rangeobject *r = (rangeobject*)self;
int contains;
if (!PyLong_CheckExact(ob) && !PyBool_Check(ob)) {
@ -660,19 +667,20 @@ range_index(rangeobject *r, PyObject *ob)
}
static PySequenceMethods range_as_sequence = {
(lenfunc)range_length, /* sq_length */
range_length, /* sq_length */
0, /* sq_concat */
0, /* sq_repeat */
(ssizeargfunc)range_item, /* sq_item */
range_item, /* sq_item */
0, /* sq_slice */
0, /* sq_ass_item */
0, /* sq_ass_slice */
(objobjproc)range_contains, /* sq_contains */
range_contains, /* sq_contains */
};
static PyObject *
range_repr(rangeobject *r)
range_repr(PyObject *op)
{
rangeobject *r = (rangeobject*)op;
Py_ssize_t istep;
/* Check for special case values for printing. We don't always
@ -692,15 +700,17 @@ range_repr(rangeobject *r)
/* Pickling support */
static PyObject *
range_reduce(rangeobject *r, PyObject *args)
range_reduce(PyObject *op, PyObject *args)
{
rangeobject *r = (rangeobject*)op;
return Py_BuildValue("(O(OOO))", Py_TYPE(r),
r->start, r->stop, r->step);
}
static PyObject *
range_subscript(rangeobject* self, PyObject* item)
range_subscript(PyObject *op, PyObject *item)
{
rangeobject *self = (rangeobject*)op;
if (_PyIndex_Check(item)) {
PyObject *i, *result;
i = PyNumber_Index(item);
@ -721,19 +731,20 @@ range_subscript(rangeobject* self, PyObject* item)
static PyMappingMethods range_as_mapping = {
(lenfunc)range_length, /* mp_length */
(binaryfunc)range_subscript, /* mp_subscript */
range_length, /* mp_length */
range_subscript, /* mp_subscript */
(objobjargproc)0, /* mp_ass_subscript */
};
static int
range_bool(rangeobject* self)
range_bool(PyObject *op)
{
rangeobject *self = (rangeobject*)op;
return PyObject_IsTrue(self->length);
}
static PyNumberMethods range_as_number = {
.nb_bool = (inquiry)range_bool,
.nb_bool = range_bool,
};
static PyObject * range_iter(PyObject *seq);
@ -751,9 +762,9 @@ PyDoc_STRVAR(index_doc,
static PyMethodDef range_methods[] = {
{"__reversed__", range_reverse, METH_NOARGS, reverse_doc},
{"__reduce__", (PyCFunction)range_reduce, METH_NOARGS},
{"count", (PyCFunction)range_count, METH_O, count_doc},
{"index", (PyCFunction)range_index, METH_O, index_doc},
{"__reduce__", range_reduce, METH_NOARGS},
{"count", range_count, METH_O, count_doc},
{"index", range_index, METH_O, index_doc},
{NULL, NULL} /* sentinel */
};
@ -769,16 +780,16 @@ PyTypeObject PyRange_Type = {
"range", /* Name of this type */
sizeof(rangeobject), /* Basic object size */
0, /* Item size for varobject */
(destructor)range_dealloc, /* tp_dealloc */
range_dealloc, /* tp_dealloc */
0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_as_async */
(reprfunc)range_repr, /* tp_repr */
range_repr, /* tp_repr */
&range_as_number, /* tp_as_number */
&range_as_sequence, /* tp_as_sequence */
&range_as_mapping, /* tp_as_mapping */
(hashfunc)range_hash, /* tp_hash */
range_hash, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */