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[] = { ...@@ -1878,8 +1878,9 @@ static PyMemberDef CData_members[] = {
{ NULL }, { 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) { if (seg != 0) {
/* Hm. Must this set an exception? */ /* Hm. Must this set an exception? */
return -1; return -1;
...@@ -1888,7 +1889,7 @@ static Py_ssize_t CData_GetBuffer(CDataObject *self, Py_ssize_t seg, void **pptr ...@@ -1888,7 +1889,7 @@ static Py_ssize_t CData_GetBuffer(CDataObject *self, Py_ssize_t seg, void **pptr
return self->b_size; 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) if (lenp)
*lenp = 1; *lenp = 1;
...@@ -1896,10 +1897,10 @@ static Py_ssize_t CData_GetSegcount(CDataObject *self, Py_ssize_t *lenp) ...@@ -1896,10 +1897,10 @@ static Py_ssize_t CData_GetSegcount(CDataObject *self, Py_ssize_t *lenp)
} }
static PyBufferProcs CData_as_buffer = { static PyBufferProcs CData_as_buffer = {
(readbufferproc)CData_GetBuffer, CData_GetBuffer,
(writebufferproc)CData_GetBuffer, CData_GetBuffer,
(segcountproc)CData_GetSegcount, CData_GetSegcount,
(charbufferproc)NULL, NULL,
}; };
/* /*
...@@ -3492,8 +3493,9 @@ Array_init(CDataObject *self, PyObject *args, PyObject *kw) ...@@ -3492,8 +3493,9 @@ Array_init(CDataObject *self, PyObject *args, PyObject *kw)
} }
static PyObject * static PyObject *
Array_item(CDataObject *self, int index) Array_item(PyObject *_self, int index)
{ {
CDataObject *self = (CDataObject *)_self;
int offset, size; int offset, size;
StgDictObject *stgdict; StgDictObject *stgdict;
...@@ -3516,8 +3518,9 @@ Array_item(CDataObject *self, int index) ...@@ -3516,8 +3518,9 @@ Array_item(CDataObject *self, int index)
} }
static PyObject * 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; StgDictObject *stgdict, *itemdict;
PyObject *proto; PyObject *proto;
PyListObject *np; PyListObject *np;
...@@ -3551,15 +3554,16 @@ Array_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh) ...@@ -3551,15 +3554,16 @@ Array_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh)
return NULL; return NULL;
for (i = 0; i < len; i++) { 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); PyList_SET_ITEM(np, i, v);
} }
return (PyObject *)np; return (PyObject *)np;
} }
static int 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; int size, offset;
StgDictObject *stgdict; StgDictObject *stgdict;
char *ptr; char *ptr;
...@@ -3585,8 +3589,9 @@ Array_ass_item(CDataObject *self, int index, PyObject *value) ...@@ -3585,8 +3589,9 @@ Array_ass_item(CDataObject *self, int index, PyObject *value)
} }
static int 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; int i, len;
if (value == NULL) { if (value == NULL) {
...@@ -3617,7 +3622,7 @@ Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value) ...@@ -3617,7 +3622,7 @@ Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value)
int result; int result;
if (item == NULL) if (item == NULL)
return -1; return -1;
result = Array_ass_item(self, i+ilow, item); result = Array_ass_item(_self, i+ilow, item);
Py_DECREF(item); Py_DECREF(item);
if (result == -1) if (result == -1)
return -1; return -1;
...@@ -3626,19 +3631,20 @@ Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value) ...@@ -3626,19 +3631,20 @@ Array_ass_slice(CDataObject *self, int ilow, int ihigh, PyObject *value)
} }
static int static int
Array_length(CDataObject *self) Array_length(PyObject *_self)
{ {
CDataObject *self = (CDataObject *)_self;
return self->b_length; return self->b_length;
} }
static PySequenceMethods Array_as_sequence = { static PySequenceMethods Array_as_sequence = {
(lenfunc)Array_length, /* sq_length; */ Array_length, /* sq_length; */
0, /* sq_concat; */ 0, /* sq_concat; */
0, /* sq_repeat; */ 0, /* sq_repeat; */
(ssizeargfunc)Array_item, /* sq_item; */ Array_item, /* sq_item; */
(ssizessizeargfunc)Array_slice, /* sq_slice; */ Array_slice, /* sq_slice; */
(ssizeobjargproc)Array_ass_item, /* sq_ass_item; */ Array_ass_item, /* sq_ass_item; */
(ssizessizeobjargproc)Array_ass_slice, /* sq_ass_slice; */ Array_ass_slice, /* sq_ass_slice; */
0, /* sq_contains; */ 0, /* sq_contains; */
0, /* sq_inplace_concat; */ 0, /* sq_inplace_concat; */
...@@ -3990,8 +3996,9 @@ static PyTypeObject Simple_Type = { ...@@ -3990,8 +3996,9 @@ static PyTypeObject Simple_Type = {
Pointer_Type Pointer_Type
*/ */
static PyObject * static PyObject *
Pointer_item(CDataObject *self, int index) Pointer_item(PyObject *_self, int index)
{ {
CDataObject *self = (CDataObject *)_self;
int size, offset; int size, offset;
StgDictObject *stgdict, *itemdict; StgDictObject *stgdict, *itemdict;
PyObject *proto; PyObject *proto;
...@@ -4017,8 +4024,9 @@ Pointer_item(CDataObject *self, int index) ...@@ -4017,8 +4024,9 @@ Pointer_item(CDataObject *self, int index)
} }
static int 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; int size;
StgDictObject *stgdict; StgDictObject *stgdict;
...@@ -4159,8 +4167,9 @@ Pointer_new(PyTypeObject *type, PyObject *args, PyObject *kw) ...@@ -4159,8 +4167,9 @@ Pointer_new(PyTypeObject *type, PyObject *args, PyObject *kw)
} }
static PyObject * 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; PyListObject *np;
StgDictObject *stgdict, *itemdict; StgDictObject *stgdict, *itemdict;
PyObject *proto; PyObject *proto;
...@@ -4190,7 +4199,7 @@ Pointer_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh) ...@@ -4190,7 +4199,7 @@ Pointer_slice(CDataObject *self, Py_ssize_t ilow, Py_ssize_t ihigh)
return NULL; return NULL;
for (i = 0; i < len; i++) { 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); PyList_SET_ITEM(np, i, v);
} }
return (PyObject *)np; return (PyObject *)np;
...@@ -4200,9 +4209,9 @@ static PySequenceMethods Pointer_as_sequence = { ...@@ -4200,9 +4209,9 @@ static PySequenceMethods Pointer_as_sequence = {
0, /* inquiry sq_length; */ 0, /* inquiry sq_length; */
0, /* binaryfunc sq_concat; */ 0, /* binaryfunc sq_concat; */
0, /* intargfunc sq_repeat; */ 0, /* intargfunc sq_repeat; */
(ssizeargfunc)Pointer_item, /* intargfunc sq_item; */ Pointer_item, /* intargfunc sq_item; */
(ssizessizeargfunc)Pointer_slice, /* intintargfunc sq_slice; */ Pointer_slice, /* intintargfunc sq_slice; */
(ssizeobjargproc)Pointer_ass_item, /* intobjargproc sq_ass_item; */ Pointer_ass_item, /* intobjargproc sq_ass_item; */
0, /* intintobjargproc sq_ass_slice; */ 0, /* intintobjargproc sq_ass_slice; */
0, /* objobjproc sq_contains; */ 0, /* objobjproc sq_contains; */
/* Added in release 2.0 */ /* Added in release 2.0 */
......
...@@ -2,15 +2,6 @@ ...@@ -2,15 +2,6 @@
#if (PY_VERSION_HEX < 0x02050000) #if (PY_VERSION_HEX < 0x02050000)
typedef int Py_ssize_t; 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 #endif
#ifndef MS_WIN32 #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