]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-111178: Fix function signatures in rangeobject.c (#131101)
authorVictor Stinner <vstinner@python.org>
Wed, 12 Mar 2025 06:29:20 +0000 (07:29 +0100)
committerGitHub <noreply@github.com>
Wed, 12 Mar 2025 06:29:20 +0000 (07:29 +0100)
Objects/rangeobject.c

index 2942ab624edf72707ee3385a029d24ed2477c38f..6d93d778dd7fb3fa624ceceefd1f10189cb14dc8 100644 (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 */