[ctypes-commit] ctypes/source cfield.c,1.119,1.120
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2006-06-08 13:23:14
|
Update of /cvsroot/ctypes/ctypes/source In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv15567 Modified Files: cfield.c Log Message: Merge in changes done in Python SVN trunk: Convert CFieldObject tp_members to tp_getset, since there is no structmember typecode for Py_ssize_t fields. This fixes some errors on the 64-bit big endian machines. Index: cfield.c =================================================================== RCS file: /cvsroot/ctypes/ctypes/source/cfield.c,v retrieving revision 1.119 retrieving revision 1.120 diff -C2 -d -r1.119 -r1.120 *** cfield.c 6 Apr 2006 11:35:31 -0000 1.119 --- cfield.c 8 Jun 2006 13:23:07 -0000 1.120 *************** *** 1,4 **** #include "Python.h" - #include "structmember.h" #include <ffi.h> --- 1,3 ---- *************** *** 209,220 **** } ! static PyMemberDef CField_members[] = { ! { "offset", T_UINT, ! offsetof(CFieldObject, offset), READONLY, ! "offset in bytes of this field"}, ! { "size", T_UINT, ! offsetof(CFieldObject, size), READONLY, ! "size in bytes of this field"}, ! { NULL }, }; --- 208,235 ---- } ! static PyObject * ! CField_get_offset(PyObject *self, void *data) ! { ! #if (PY_VERSION_HEX < 0x02050000) ! return PyInt_FromLong(((CFieldObject *)self)->offset); ! #else ! return PyInt_FromSsize_t(((CFieldObject *)self)->offset); ! #endif ! } ! ! static PyObject * ! CField_get_size(PyObject *self, void *data) ! { ! #if (PY_VERSION_HEX < 0x02050000) ! return PyInt_FromLong(((CFieldObject *)self)->size); ! #else ! return PyInt_FromSsize_t(((CFieldObject *)self)->size); ! #endif ! } ! ! static PyGetSetDef CField_getset[] = { ! { "offset", CField_get_offset, NULL, "offset in bytes of this field" }, ! { "size", CField_get_size, NULL, "size in bytes of this field" }, ! { NULL, NULL, NULL, NULL }, }; *************** *** 299,304 **** 0, /* tp_iternext */ 0, /* tp_methods */ ! CField_members, /* tp_members */ ! 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ --- 314,319 ---- 0, /* tp_iternext */ 0, /* tp_methods */ ! 0, /* tp_members */ ! CField_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ |