mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Apply patch from Martin v. Loewis: Avoid function pointer casts.
https://sourceforge.net/tracker/?func=detail&atid=532156&aid=1453037&group_id=71702
This commit is contained in:
parent
a0dd3e32f6
commit
ba29e4c573
2 changed files with 34 additions and 34 deletions
|
@ -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
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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 = {
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
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 = {
|
||||||
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 @@
|
||||||
|
|
||||||
#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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue