Fix gcc warnings intruduced by passing Py_ssize_t to PyErr_Format calls.

This commit is contained in:
Thomas Heller 2007-06-08 19:01:06 +00:00
parent e81c9f6d5e
commit 6088f24df2
3 changed files with 24 additions and 11 deletions

View File

@ -1769,7 +1769,12 @@ converters_from_argtypes(PyObject *ob)
Py_XDECREF(converters); Py_XDECREF(converters);
Py_DECREF(ob); Py_DECREF(ob);
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"item %d in _argtypes_ has no from_param method", i+1); #if (PY_VERSION_HEX < 0x02050000)
"item %d in _argtypes_ has no from_param method",
#else
"item %zd in _argtypes_ has no from_param method",
#endif
i+1);
return NULL; return NULL;
} }
@ -3191,7 +3196,11 @@ _build_callargs(CFuncPtrObject *self, PyObject *argtypes,
message is misleading. See unittests/test_paramflags.py message is misleading. See unittests/test_paramflags.py
*/ */
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
#if (PY_VERSION_HEX < 0x02050000)
"call takes exactly %d arguments (%d given)", "call takes exactly %d arguments (%d given)",
#else
"call takes exactly %d arguments (%zd given)",
#endif
inargs_index, actual_args); inargs_index, actual_args);
goto error; goto error;
} }

View File

@ -220,21 +220,13 @@ CField_get(CFieldObject *self, PyObject *inst, PyTypeObject *type)
static PyObject * static PyObject *
CField_get_offset(PyObject *self, void *data) 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); return PyInt_FromSsize_t(((CFieldObject *)self)->offset);
#endif
} }
static PyObject * static PyObject *
CField_get_size(PyObject *self, void *data) 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); return PyInt_FromSsize_t(((CFieldObject *)self)->size);
#endif
} }
static PyGetSetDef CField_getset[] = { static PyGetSetDef CField_getset[] = {
@ -279,7 +271,7 @@ CField_repr(CFieldObject *self)
#if (PY_VERSION_HEX < 0x02050000) #if (PY_VERSION_HEX < 0x02050000)
"<Field type=%s, ofs=%d:%d, bits=%d>", "<Field type=%s, ofs=%d:%d, bits=%d>",
#else #else
"<Field type=%s, ofs=%zd:%d, bits=%d>", "<Field type=%s, ofs=%zd:%zd, bits=%zd>",
#endif #endif
name, self->offset, size, bits); name, self->offset, size, bits);
else else
@ -287,7 +279,7 @@ CField_repr(CFieldObject *self)
#if (PY_VERSION_HEX < 0x02050000) #if (PY_VERSION_HEX < 0x02050000)
"<Field type=%s, ofs=%d, size=%d>", "<Field type=%s, ofs=%d, size=%d>",
#else #else
"<Field type=%s, ofs=%zd, size=%d>", "<Field type=%s, ofs=%zd, size=%zd>",
#endif #endif
name, self->offset, size); name, self->offset, size);
return result; return result;
@ -1263,7 +1255,11 @@ U_set(void *ptr, PyObject *value, Py_ssize_t length)
size = PyUnicode_GET_SIZE(value); size = PyUnicode_GET_SIZE(value);
if (size > length) { if (size > length) {
PyErr_Format(PyExc_ValueError, PyErr_Format(PyExc_ValueError,
#if (PY_VERSION_HEX < 0x02050000)
"string too long (%d, maximum length %d)", "string too long (%d, maximum length %d)",
#else
"string too long (%zd, maximum length %zd)",
#endif
size, length); size, length);
Py_DECREF(value); Py_DECREF(value);
return NULL; return NULL;
@ -1316,7 +1312,11 @@ s_set(void *ptr, PyObject *value, Py_ssize_t length)
++size; ++size;
} else if (size > length) { } else if (size > length) {
PyErr_Format(PyExc_ValueError, PyErr_Format(PyExc_ValueError,
#if (PY_VERSION_HEX < 0x02050000)
"string too long (%d, maximum length %d)", "string too long (%d, maximum length %d)",
#else
"string too long (%zd, maximum length %zd)",
#endif
size, length); size, length);
return NULL; return NULL;
} }

View File

@ -406,7 +406,11 @@ StructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct)
if (dict == NULL) { if (dict == NULL) {
Py_DECREF(pair); Py_DECREF(pair);
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
#if (PY_VERSION_HEX < 0x02050000)
"second item in _fields_ tuple (index %d) must be a C type", "second item in _fields_ tuple (index %d) must be a C type",
#else
"second item in _fields_ tuple (index %zd) must be a C type",
#endif
i); i);
return -1; return -1;
} }