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