Silence some 'comparison between signed and unsigned' compiler warnings.

This commit is contained in:
Mark Dickinson 2010-02-14 12:16:43 +00:00
parent 4a670c5572
commit ac5685eb67
1 changed files with 8 additions and 7 deletions

View File

@ -126,11 +126,11 @@ PyList_New(Py_ssize_t size)
PyErr_BadInternalCall();
return NULL;
}
nbytes = size * sizeof(PyObject *);
/* Check for overflow without an actual overflow,
* which can cause compiler to optimise out */
if (size > PY_SIZE_MAX / sizeof(PyObject *))
if ((size_t)size > PY_SIZE_MAX / sizeof(PyObject *))
return PyErr_NoMemory();
nbytes = size * sizeof(PyObject *);
if (numfree) {
numfree--;
op = free_list[numfree];
@ -1432,7 +1432,7 @@ merge_getmem(MergeState *ms, Py_ssize_t need)
* we don't care what's in the block.
*/
merge_freemem(ms);
if (need > PY_SSIZE_T_MAX / sizeof(PyObject*)) {
if ((size_t)need > PY_SSIZE_T_MAX / sizeof(PyObject*)) {
PyErr_NoMemory();
return -1;
}
@ -2636,7 +2636,8 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
step = -step;
}
assert(slicelength <= PY_SIZE_MAX / sizeof(PyObject*));
assert((size_t)slicelength <=
PY_SIZE_MAX / sizeof(PyObject*));
garbage = (PyObject**)
PyMem_MALLOC(slicelength*sizeof(PyObject*));
@ -2652,13 +2653,13 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
and then tail end of the list that was not
covered by the slice */
for (cur = start, i = 0;
cur < stop;
cur < (size_t)stop;
cur += step, i++) {
Py_ssize_t lim = step - 1;
garbage[i] = PyList_GET_ITEM(self, cur);
if (cur + step >= Py_SIZE(self)) {
if (cur + step >= (size_t)Py_SIZE(self)) {
lim = Py_SIZE(self) - cur - 1;
}
@ -2667,7 +2668,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
lim * sizeof(PyObject *));
}
cur = start + slicelength*step;
if (cur < Py_SIZE(self)) {
if (cur < (size_t)Py_SIZE(self)) {
memmove(self->ob_item + cur - slicelength,
self->ob_item + cur,
(Py_SIZE(self) - cur) *