https://github.com/python/cpython/commit/6935d96e9c2e3cc5101b8949872f6d746c75b1c0
commit: 6935d96e9c2e3cc5101b8949872f6d746c75b1c0
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2025-03-19T16:54:18+01:00
summary:
gh-111178: Fix function signatures in _testbuffer.c (#131463)
files:
M Modules/_testbuffer.c
diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c
index b47bc8a830cb5e..e0521827f414f2 100644
--- a/Modules/_testbuffer.c
+++ b/Modules/_testbuffer.c
@@ -218,8 +218,9 @@ ndarray_new(PyTypeObject *type, PyObject *args, PyObject
*kwds)
}
static void
-ndarray_dealloc(NDArrayObject *self)
+ndarray_dealloc(PyObject *op)
{
+ NDArrayObject *self = (NDArrayObject*)op;
if (self->head) {
if (ND_IS_CONSUMER(self)) {
Py_buffer *base = &self->head->base;
@@ -1413,8 +1414,9 @@ ndarray_pop(PyObject *self, PyObject *dummy)
/**************************************************************************/
static int
-ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int flags)
+ndarray_getbuf(PyObject *op, Py_buffer *view, int flags)
{
+ NDArrayObject *self = (NDArrayObject*)op;
ndbuf_t *ndbuf = self->head;
Py_buffer *base = &ndbuf->base;
int baseflags = ndbuf->flags;
@@ -1530,8 +1532,9 @@ ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int
flags)
}
static void
-ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
+ndarray_releasebuf(PyObject *op, Py_buffer *view)
{
+ NDArrayObject *self = (NDArrayObject*)op;
if (!ND_IS_CONSUMER(self)) {
ndbuf_t *ndbuf = view->internal;
if (--ndbuf->exports == 0 && ndbuf != self->head)
@@ -1540,8 +1543,8 @@ ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
}
static PyBufferProcs ndarray_as_buffer = {
- (getbufferproc)ndarray_getbuf, /* bf_getbuffer */
- (releasebufferproc)ndarray_releasebuf /* bf_releasebuffer */
+ ndarray_getbuf, /* bf_getbuffer */
+ ndarray_releasebuf, /* bf_releasebuffer */
};
@@ -1998,21 +2001,24 @@ ssize_array_as_tuple(Py_ssize_t *array, Py_ssize_t len)
}
static PyObject *
-ndarray_get_flags(NDArrayObject *self, void *closure)
+ndarray_get_flags(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
return PyLong_FromLong(self->head->flags);
}
static PyObject *
-ndarray_get_offset(NDArrayObject *self, void *closure)
+ndarray_get_offset(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
ndbuf_t *ndbuf = self->head;
return PyLong_FromSsize_t(ndbuf->offset);
}
static PyObject *
-ndarray_get_obj(NDArrayObject *self, void *closure)
+ndarray_get_obj(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
if (base->obj == NULL) {
@@ -2022,64 +2028,72 @@ ndarray_get_obj(NDArrayObject *self, void *closure)
}
static PyObject *
-ndarray_get_nbytes(NDArrayObject *self, void *closure)
+ndarray_get_nbytes(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return PyLong_FromSsize_t(base->len);
}
static PyObject *
-ndarray_get_readonly(NDArrayObject *self, void *closure)
+ndarray_get_readonly(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return PyBool_FromLong(base->readonly);
}
static PyObject *
-ndarray_get_itemsize(NDArrayObject *self, void *closure)
+ndarray_get_itemsize(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return PyLong_FromSsize_t(base->itemsize);
}
static PyObject *
-ndarray_get_format(NDArrayObject *self, void *closure)
+ndarray_get_format(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
const char *fmt = base->format ? base->format : "";
return PyUnicode_FromString(fmt);
}
static PyObject *
-ndarray_get_ndim(NDArrayObject *self, void *closure)
+ndarray_get_ndim(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return PyLong_FromSsize_t(base->ndim);
}
static PyObject *
-ndarray_get_shape(NDArrayObject *self, void *closure)
+ndarray_get_shape(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return ssize_array_as_tuple(base->shape, base->ndim);
}
static PyObject *
-ndarray_get_strides(NDArrayObject *self, void *closure)
+ndarray_get_strides(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return ssize_array_as_tuple(base->strides, base->ndim);
}
static PyObject *
-ndarray_get_suboffsets(NDArrayObject *self, void *closure)
+ndarray_get_suboffsets(PyObject *op, void *closure)
{
+ NDArrayObject *self = (NDArrayObject*)op;
Py_buffer *base = &self->head->base;
return ssize_array_as_tuple(base->suboffsets, base->ndim);
}
static PyObject *
-ndarray_c_contig(PyObject *self, PyObject *dummy)
+ndarray_c_contig(PyObject *self, void *dummy)
{
NDArrayObject *nd = (NDArrayObject *)self;
int ret = PyBuffer_IsContiguous(&nd->head->base, 'C');
@@ -2093,7 +2107,7 @@ ndarray_c_contig(PyObject *self, PyObject *dummy)
}
static PyObject *
-ndarray_fortran_contig(PyObject *self, PyObject *dummy)
+ndarray_fortran_contig(PyObject *self, void *dummy)
{
NDArrayObject *nd = (NDArrayObject *)self;
int ret = PyBuffer_IsContiguous(&nd->head->base, 'F');
@@ -2107,7 +2121,7 @@ ndarray_fortran_contig(PyObject *self, PyObject *dummy)
}
static PyObject *
-ndarray_contig(PyObject *self, PyObject *dummy)
+ndarray_contig(PyObject *self, void *dummy)
{
NDArrayObject *nd = (NDArrayObject *)self;
int ret = PyBuffer_IsContiguous(&nd->head->base, 'A');
@@ -2124,21 +2138,21 @@ ndarray_contig(PyObject *self, PyObject *dummy)
static PyGetSetDef ndarray_getset [] =
{
/* ndbuf */
- { "flags", (getter)ndarray_get_flags, NULL, NULL, NULL},
- { "offset", (getter)ndarray_get_offset, NULL, NULL, NULL},
+ { "flags", ndarray_get_flags, NULL, NULL, NULL},
+ { "offset", ndarray_get_offset, NULL, NULL, NULL},
/* ndbuf.base */
- { "obj", (getter)ndarray_get_obj, NULL, NULL, NULL},
- { "nbytes", (getter)ndarray_get_nbytes, NULL, NULL, NULL},
- { "readonly", (getter)ndarray_get_readonly, NULL, NULL, NULL},
- { "itemsize", (getter)ndarray_get_itemsize, NULL, NULL, NULL},
- { "format", (getter)ndarray_get_format, NULL, NULL, NULL},
- { "ndim", (getter)ndarray_get_ndim, NULL, NULL, NULL},
- { "shape", (getter)ndarray_get_shape, NULL, NULL, NULL},
- { "strides", (getter)ndarray_get_strides, NULL, NULL, NULL},
- { "suboffsets", (getter)ndarray_get_suboffsets, NULL, NULL, NULL},
- { "c_contiguous", (getter)ndarray_c_contig, NULL, NULL, NULL},
- { "f_contiguous", (getter)ndarray_fortran_contig, NULL, NULL, NULL},
- { "contiguous", (getter)ndarray_contig, NULL, NULL, NULL},
+ { "obj", ndarray_get_obj, NULL, NULL, NULL},
+ { "nbytes", ndarray_get_nbytes, NULL, NULL, NULL},
+ { "readonly", ndarray_get_readonly, NULL, NULL, NULL},
+ { "itemsize", ndarray_get_itemsize, NULL, NULL, NULL},
+ { "format", ndarray_get_format, NULL, NULL, NULL},
+ { "ndim", ndarray_get_ndim, NULL, NULL, NULL},
+ { "shape", ndarray_get_shape, NULL, NULL, NULL},
+ { "strides", ndarray_get_strides, NULL, NULL, NULL},
+ { "suboffsets", ndarray_get_suboffsets, NULL, NULL, NULL},
+ { "c_contiguous", ndarray_c_contig, NULL, NULL, NULL},
+ { "f_contiguous", ndarray_fortran_contig, NULL, NULL, NULL},
+ { "contiguous", ndarray_contig, NULL, NULL, NULL},
{NULL}
};
@@ -2623,7 +2637,7 @@ ndarray_hash(PyObject *self)
}
-static PyMethodDef ndarray_methods [] =
+static PyMethodDef ndarray_methods[] =
{
{ "tolist", ndarray_tolist, METH_NOARGS, NULL },
{ "tobytes", ndarray_tobytes, METH_NOARGS, NULL },
@@ -2639,7 +2653,7 @@ static PyTypeObject NDArray_Type = {
"ndarray", /* Name of this type */
sizeof(NDArrayObject), /* Basic object size */
0, /* Item size for varobject */
- (destructor)ndarray_dealloc, /* tp_dealloc */
+ ndarray_dealloc, /* tp_dealloc */
0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
@@ -2648,7 +2662,7 @@ static PyTypeObject NDArray_Type = {
0, /* tp_as_number */
&ndarray_as_sequence, /* tp_as_sequence */
&ndarray_as_mapping, /* tp_as_mapping */
- (hashfunc)ndarray_hash, /* tp_hash */
+ ndarray_hash, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
PyObject_GenericGetAttr, /* tp_getattro */
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]