Commit ba29e4c5 authored by Thomas Heller's avatar Thomas Heller

Apply patch from Martin v. Loewis: Avoid function pointer casts.

https://sourceforge.net/tracker/?func=detail&atid=532156&aid=1453037&group_id=71702
parent a0dd3e32
......@@ -1878,8 +1878,9 @@ static PyMemberDef CData_members[] = {
{ NULL },
};
static Py_ssize_t CData_GetBuffer(CDataObject *self, Py_ssize_t seg, void **pptr)
static Py_ssize_t CData_GetBuffer(PyObject *_self, Py_ssize_t seg, void **pptr)
{
CDataObject *self = (CDataObject *)_self;
if (seg != 0) {
/* Hm. Must this set an exception? */
return -1;
......@@ -1888,7 +1889,7 @@ static Py_ssize_t CData_GetBuffer(CDataObject *self, Py_ssize_t seg, void **pptr
return self->b_size;
}
static Py_ssize_t CData_GetSegcount(CDataObject *self, Py_ssize_t *lenp)
static Py_ssize_t CData_GetSegcount(PyObject *_self, Py_ssize_t *lenp)
{
if (lenp)
*lenp = 1;
......@@ -1896,10 +1897,10 @@ static Py_ssize_t CData_GetSegcount(CDataObject *self, Py_ssize_t *lenp)
}
static PyBufferProcs CData_as_buffer = {
(readbufferproc)CData_GetBuffer,
(writebufferproc)CData_GetBuffer,
(segcountproc)CData_GetSegcount,
(charbufferproc)NULL,
CData_GetBuffer,
CData_GetBuffer,
CData_GetSegcount,
NULL,
};
/*
......@@ -3492,8 +3493,9 @@ Array_init(CDataObject *self, PyObject *args, PyObject *kw)
}
static PyObject *
Array_item(CDataObject *self, int index)
Array_item(PyObject *_self, int index)
{
CDataObject *self = (CDataObject *)_self;
int offset, size;
StgDictObject *stgdict;
......@@ -3516,8 +3518,9 @@ Array_item(CDataObject *self, int index)
}
static PyObject *
Array_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh)
Array_slice(PyObject *_self, Py_ssize_t ilow, Py_ssize_t ihigh)
{
CDataObject *self = (CDataObject *)_self;
StgDictObject *stgdict, *itemdict;
PyObject *proto;
PyListObject *np;
......@@ -3551,15 +3554,16 @@ Array_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh)
return NULL;
for (i = 0; i < len; i++) {
PyObject *v = Array_item(self, i+ilow);
PyObject *v = Array_item(_self, i+ilow);
PyList_SET_ITEM(np, i, v);
}
return (PyObject *)np;
}
static int
Array_ass_item(CDataObject *self, int index, PyObject *value)
Array_ass_item(PyObject *_self, int index, PyObject *value)
{
CDataObject *self = (CDataObject *)_self;
int size, offset;
StgDictObject *stgdict;
char *ptr;
......@@ -3585,8 +3589,9 @@ Array_ass_item(CDataObject *self, int index, PyObject *value)
}
static int
Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value)
Array_ass_slice(PyObject *_self, int ilow, int ihigh, PyObject *value)
{
CDataObject *self = (CDataObject *)_self;
int i, len;
if (value == NULL) {
......@@ -3617,7 +3622,7 @@ Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value)
int result;
if (item == NULL)
return -1;
result = Array_ass_item(self, i+ilow, item);
result = Array_ass_item(_self, i+ilow, item);
Py_DECREF(item);
if (result == -1)
return -1;
......@@ -3626,19 +3631,20 @@ Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value)
}
static int
Array_length(CDataObject *self)
Array_length(PyObject *_self)
{
CDataObject *self = (CDataObject *)_self;
return self->b_length;
}
static PySequenceMethods Array_as_sequence = {
(lenfunc)Array_length, /* sq_length; */
Array_length, /* sq_length; */
0, /* sq_concat; */
0, /* sq_repeat; */
(ssizeargfunc)Array_item, /* sq_item; */
(ssizessizeargfunc)Array_slice, /* sq_slice; */
(ssizeobjargproc)Array_ass_item, /* sq_ass_item; */
(ssizessizeobjargproc)Array_ass_slice, /* sq_ass_slice; */
Array_item, /* sq_item; */
Array_slice, /* sq_slice; */
Array_ass_item, /* sq_ass_item; */
Array_ass_slice, /* sq_ass_slice; */
0, /* sq_contains; */
0, /* sq_inplace_concat; */
......@@ -3990,8 +3996,9 @@ static PyTypeObject Simple_Type = {
Pointer_Type
*/
static PyObject *
Pointer_item(CDataObject *self, int index)
Pointer_item(PyObject *_self, int index)
{
CDataObject *self = (CDataObject *)_self;
int size, offset;
StgDictObject *stgdict, *itemdict;
PyObject *proto;
......@@ -4017,8 +4024,9 @@ Pointer_item(CDataObject *self, int index)
}
static int
Pointer_ass_item(CDataObject *self, int index, PyObject *value)
Pointer_ass_item(PyObject *_self, int index, PyObject *value)
{
CDataObject *self = (CDataObject *)_self;
int size;
StgDictObject *stgdict;
......@@ -4159,8 +4167,9 @@ Pointer_new(PyTypeObject *type, PyObject *args, PyObject *kw)
}
static PyObject *
Pointer_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh)
Pointer_slice(PyObject *_self, Py_ssize_t ilow, Py_ssize_t ihigh)
{
CDataObject *self = (CDataObject *)_self;
PyListObject *np;
StgDictObject *stgdict, *itemdict;
PyObject *proto;
......@@ -4190,7 +4199,7 @@ Pointer_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh)
return NULL;
for (i = 0; i < len; i++) {
PyObject *v = Pointer_item(self, i+ilow);
PyObject *v = Pointer_item(_self, i+ilow);
PyList_SET_ITEM(np, i, v);
}
return (PyObject *)np;
......@@ -4200,9 +4209,9 @@ static PySequenceMethods Pointer_as_sequence = {
0, /* inquiry sq_length; */
0, /* binaryfunc sq_concat; */
0, /* intargfunc sq_repeat; */
(ssizeargfunc)Pointer_item, /* intargfunc sq_item; */
(ssizessizeargfunc)Pointer_slice, /* intintargfunc sq_slice; */
(ssizeobjargproc)Pointer_ass_item, /* intobjargproc sq_ass_item; */
Pointer_item, /* intargfunc sq_item; */
Pointer_slice, /* intintargfunc sq_slice; */
Pointer_ass_item, /* intobjargproc sq_ass_item; */
0, /* intintobjargproc sq_ass_slice; */
0, /* objobjproc sq_contains; */
/* Added in release 2.0 */
......
......@@ -2,15 +2,6 @@
#if (PY_VERSION_HEX < 0x02050000)
typedef int Py_ssize_t;
#define lenfunc inquiry
#define readbufferproc getreadbufferproc
#define writebufferproc getwritebufferproc
#define segcountproc getsegcountproc
#define charbufferproc getcharbufferproc
#define ssizeargfunc intargfunc
#define ssizessizeargfunc intintargfunc
#define ssizeobjargproc intobjargproc
#define ssizessizeobjargproc intintobjargproc
#endif
#ifndef MS_WIN32
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment