mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
gh-111178: Fix function signatures in rangeobject.c (#131101)
This commit is contained in:
parent
52756c30db
commit
48cca72a7f
1 changed files with 34 additions and 23 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue