https://github.com/python/cpython/commit/48cca72a7ffb9e8ff26a98ad429c72a78b2558b1
commit: 48cca72a7ffb9e8ff26a98ad429c72a78b2558b1
branch: main
author: Victor Stinner <vstin...@python.org>
committer: vstinner <vstin...@python.org>
date: 2025-03-12T07:29:20+01:00
summary:

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

files:
M Objects/rangeobject.c

diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index 2942ab624edf72..6d93d778dd7fb3 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -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 */

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to