https://github.com/python/cpython/commit/6935d96e9c2e3cc5101b8949872f6d746c75b1c0
commit: 6935d96e9c2e3cc5101b8949872f6d746c75b1c0
branch: main
author: Victor Stinner <vstin...@python.org>
committer: vstinner <vstin...@python.org>
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 -- 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