C++ compiler cleanup: bunch-o-casts, plus use of unsigned loop index var in a couple places

This commit is contained in:
Skip Montanaro 2006-04-18 00:35:43 +00:00
parent 3fca463627
commit 429433b30b
6 changed files with 29 additions and 28 deletions

View file

@ -688,7 +688,7 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v)
} }
#ifdef Py_USING_UNICODE #ifdef Py_USING_UNICODE
else if (PyUnicode_Check(v)) { else if (PyUnicode_Check(v)) {
if (PyUnicode_GET_SIZE(v) >= sizeof(s_buffer)) { if (PyUnicode_GET_SIZE(v) >= (Py_ssize_t)sizeof(s_buffer)) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"complex() literal too large to convert"); "complex() literal too large to convert");
return NULL; return NULL;

View file

@ -97,7 +97,7 @@ PyFloat_FromString(PyObject *v, char **pend)
} }
#ifdef Py_USING_UNICODE #ifdef Py_USING_UNICODE
else if (PyUnicode_Check(v)) { else if (PyUnicode_Check(v)) {
if (PyUnicode_GET_SIZE(v) >= sizeof(s_buffer)) { if (PyUnicode_GET_SIZE(v) >= (Py_ssize_t)sizeof(s_buffer)) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"Unicode float() literal too long to convert"); "Unicode float() literal too long to convert");
return NULL; return NULL;

View file

@ -255,18 +255,18 @@ PyInt_AsUnsignedLongMask(register PyObject *op)
if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL || if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL ||
nb->nb_int == NULL) { nb->nb_int == NULL) {
PyErr_SetString(PyExc_TypeError, "an integer is required"); PyErr_SetString(PyExc_TypeError, "an integer is required");
return -1; return (unsigned long)-1;
} }
io = (PyIntObject*) (*nb->nb_int) (op); io = (PyIntObject*) (*nb->nb_int) (op);
if (io == NULL) if (io == NULL)
return -1; return (unsigned long)-1;
if (!PyInt_Check(io)) { if (!PyInt_Check(io)) {
if (PyLong_Check(io)) { if (PyLong_Check(io)) {
val = PyLong_AsUnsignedLongMask((PyObject *)io); val = PyLong_AsUnsignedLongMask((PyObject *)io);
Py_DECREF(io); Py_DECREF(io);
if (PyErr_Occurred()) if (PyErr_Occurred())
return -1; return (unsigned long)-1;
return val; return val;
} }
else else
@ -274,7 +274,7 @@ PyInt_AsUnsignedLongMask(register PyObject *op)
Py_DECREF(io); Py_DECREF(io);
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"nb_int should return int object"); "nb_int should return int object");
return -1; return (unsigned long)-1;
} }
} }
@ -300,18 +300,18 @@ PyInt_AsUnsignedLongLongMask(register PyObject *op)
if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL || if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL ||
nb->nb_int == NULL) { nb->nb_int == NULL) {
PyErr_SetString(PyExc_TypeError, "an integer is required"); PyErr_SetString(PyExc_TypeError, "an integer is required");
return -1; return (unsigned PY_LONG_LONG)-1;
} }
io = (PyIntObject*) (*nb->nb_int) (op); io = (PyIntObject*) (*nb->nb_int) (op);
if (io == NULL) if (io == NULL)
return -1; return (unsigned PY_LONG_LONG)-1;
if (!PyInt_Check(io)) { if (!PyInt_Check(io)) {
if (PyLong_Check(io)) { if (PyLong_Check(io)) {
val = PyLong_AsUnsignedLongLongMask((PyObject *)io); val = PyLong_AsUnsignedLongLongMask((PyObject *)io);
Py_DECREF(io); Py_DECREF(io);
if (PyErr_Occurred()) if (PyErr_Occurred())
return -1; return (unsigned PY_LONG_LONG)-1;
return val; return val;
} }
else else
@ -319,7 +319,7 @@ PyInt_AsUnsignedLongLongMask(register PyObject *op)
Py_DECREF(io); Py_DECREF(io);
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"nb_int should return int object"); "nb_int should return int object");
return -1; return (unsigned PY_LONG_LONG)-1;
} }
} }
@ -1152,6 +1152,7 @@ PyInt_Fini(void)
PyIntObject *p; PyIntObject *p;
PyIntBlock *list, *next; PyIntBlock *list, *next;
int i; int i;
unsigned int ctr;
int bc, bf; /* block count, number of freed blocks */ int bc, bf; /* block count, number of freed blocks */
int irem, isum; /* remaining unfreed ints per block, total */ int irem, isum; /* remaining unfreed ints per block, total */
@ -1174,9 +1175,9 @@ PyInt_Fini(void)
while (list != NULL) { while (list != NULL) {
bc++; bc++;
irem = 0; irem = 0;
for (i = 0, p = &list->objects[0]; for (ctr = 0, p = &list->objects[0];
i < N_INTOBJECTS; ctr < N_INTOBJECTS;
i++, p++) { ctr++, p++) {
if (PyInt_CheckExact(p) && p->ob_refcnt != 0) if (PyInt_CheckExact(p) && p->ob_refcnt != 0)
irem++; irem++;
} }
@ -1184,9 +1185,9 @@ PyInt_Fini(void)
if (irem) { if (irem) {
list->next = block_list; list->next = block_list;
block_list = list; block_list = list;
for (i = 0, p = &list->objects[0]; for (ctr = 0, p = &list->objects[0];
i < N_INTOBJECTS; ctr < N_INTOBJECTS;
i++, p++) { ctr++, p++) {
if (!PyInt_CheckExact(p) || if (!PyInt_CheckExact(p) ||
p->ob_refcnt == 0) { p->ob_refcnt == 0) {
p->ob_type = (struct _typeobject *) p->ob_type = (struct _typeobject *)
@ -1227,9 +1228,9 @@ PyInt_Fini(void)
if (Py_VerboseFlag > 1) { if (Py_VerboseFlag > 1) {
list = block_list; list = block_list;
while (list != NULL) { while (list != NULL) {
for (i = 0, p = &list->objects[0]; for (ctr = 0, p = &list->objects[0];
i < N_INTOBJECTS; ctr < N_INTOBJECTS;
i++, p++) { ctr++, p++) {
if (PyInt_CheckExact(p) && p->ob_refcnt != 0) if (PyInt_CheckExact(p) && p->ob_refcnt != 0)
/* XXX(twouters) cast refcount to /* XXX(twouters) cast refcount to
long until %zd is universally long until %zd is universally

View file

@ -419,7 +419,7 @@ _PyLong_NumBits(PyObject *vv)
digit msd = v->ob_digit[ndigits - 1]; digit msd = v->ob_digit[ndigits - 1];
result = (ndigits - 1) * SHIFT; result = (ndigits - 1) * SHIFT;
if (result / SHIFT != ndigits - 1) if (result / SHIFT != (size_t)(ndigits - 1))
goto Overflow; goto Overflow;
do { do {
++result; ++result;
@ -953,7 +953,7 @@ PyLong_AsUnsignedLongLong(PyObject *vv)
if (vv == NULL || !PyLong_Check(vv)) { if (vv == NULL || !PyLong_Check(vv)) {
PyErr_BadInternalCall(); PyErr_BadInternalCall();
return -1; return (unsigned PY_LONG_LONG)-1;
} }
res = _PyLong_AsByteArray( res = _PyLong_AsByteArray(

View file

@ -746,7 +746,7 @@ PyString_AsStringAndSize(register PyObject *obj,
*s = PyString_AS_STRING(obj); *s = PyString_AS_STRING(obj);
if (len != NULL) if (len != NULL)
*len = PyString_GET_SIZE(obj); *len = PyString_GET_SIZE(obj);
else if (strlen(*s) != PyString_GET_SIZE(obj)) { else if (strlen(*s) != (size_t)PyString_GET_SIZE(obj)) {
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"expected string without null bytes"); "expected string without null bytes");
return -1; return -1;

View file

@ -1118,12 +1118,12 @@ set_mro_error(PyObject *to_merge, int *remain)
off = PyOS_snprintf(buf, sizeof(buf), "Cannot create a \ off = PyOS_snprintf(buf, sizeof(buf), "Cannot create a \
consistent method resolution\norder (MRO) for bases"); consistent method resolution\norder (MRO) for bases");
i = 0; i = 0;
while (PyDict_Next(set, &i, &k, &v) && off < sizeof(buf)) { while (PyDict_Next(set, &i, &k, &v) && (size_t)off < sizeof(buf)) {
PyObject *name = class_name(k); PyObject *name = class_name(k);
off += PyOS_snprintf(buf + off, sizeof(buf) - off, " %s", off += PyOS_snprintf(buf + off, sizeof(buf) - off, " %s",
name ? PyString_AS_STRING(name) : "?"); name ? PyString_AS_STRING(name) : "?");
Py_XDECREF(name); Py_XDECREF(name);
if (--n && off+1 < sizeof(buf)) { if (--n && (size_t)(off+1) < sizeof(buf)) {
buf[off++] = ','; buf[off++] = ',';
buf[off] = '\0'; buf[off] = '\0';
} }
@ -5186,16 +5186,16 @@ slotptr(PyTypeObject *type, int ioffset)
/* Note: this depends on the order of the members of PyHeapTypeObject! */ /* Note: this depends on the order of the members of PyHeapTypeObject! */
assert(offset >= 0); assert(offset >= 0);
assert(offset < offsetof(PyHeapTypeObject, as_buffer)); assert((size_t)offset < offsetof(PyHeapTypeObject, as_buffer));
if (offset >= offsetof(PyHeapTypeObject, as_sequence)) { if ((size_t)offset >= offsetof(PyHeapTypeObject, as_sequence)) {
ptr = (char *)type->tp_as_sequence; ptr = (char *)type->tp_as_sequence;
offset -= offsetof(PyHeapTypeObject, as_sequence); offset -= offsetof(PyHeapTypeObject, as_sequence);
} }
else if (offset >= offsetof(PyHeapTypeObject, as_mapping)) { else if ((size_t)offset >= offsetof(PyHeapTypeObject, as_mapping)) {
ptr = (char *)type->tp_as_mapping; ptr = (char *)type->tp_as_mapping;
offset -= offsetof(PyHeapTypeObject, as_mapping); offset -= offsetof(PyHeapTypeObject, as_mapping);
} }
else if (offset >= offsetof(PyHeapTypeObject, as_number)) { else if ((size_t)offset >= offsetof(PyHeapTypeObject, as_number)) {
ptr = (char *)type->tp_as_number; ptr = (char *)type->tp_as_number;
offset -= offsetof(PyHeapTypeObject, as_number); offset -= offsetof(PyHeapTypeObject, as_number);
} }