[Python-checkins] cpython: Issue #22156: Fix some "comparison between signed and unsigned integers"
victor.stinner
python-checkins at python.org
Sat Aug 16 01:12:19 CEST 2014
http://hg.python.org/cpython/rev/e831a98b3f43
changeset: 92110:e831a98b3f43
user: Victor Stinner <victor.stinner at gmail.com>
date: Sat Aug 16 01:03:39 2014 +0200
summary:
Issue #22156: Fix some "comparison between signed and unsigned integers"
compiler warnings in the Modules/ subdirectory.
files:
Modules/_bz2module.c | 4 ++--
Modules/_csv.c | 2 +-
Modules/_ctypes/callproc.c | 2 +-
Modules/_elementtree.c | 2 +-
Modules/_io/bytesio.c | 6 ++++--
Modules/_io/textio.c | 2 +-
Modules/_sre.c | 2 +-
Modules/_struct.c | 5 +++--
Modules/_testcapimodule.c | 2 +-
Modules/_tkinter.c | 4 ++--
Modules/_tracemalloc.c | 10 +++++-----
Modules/arraymodule.c | 2 +-
Modules/posixmodule.c | 2 +-
13 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/Modules/_bz2module.c b/Modules/_bz2module.c
--- a/Modules/_bz2module.c
+++ b/Modules/_bz2module.c
@@ -188,7 +188,7 @@
if (action == BZ_FINISH && bzerror == BZ_STREAM_END)
break;
}
- if (data_size != PyBytes_GET_SIZE(result))
+ if (data_size != (size_t)PyBytes_GET_SIZE(result))
if (_PyBytes_Resize(&result, data_size) < 0)
goto error;
return result;
@@ -457,7 +457,7 @@
d->bzs.avail_out = (unsigned int)Py_MIN(buffer_left, UINT_MAX);
}
}
- if (data_size != PyBytes_GET_SIZE(result))
+ if (data_size != (size_t)PyBytes_GET_SIZE(result))
if (_PyBytes_Resize(&result, data_size) < 0)
goto error;
return result;
diff --git a/Modules/_csv.c b/Modules/_csv.c
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -290,7 +290,7 @@
StyleDesc *qs;
for (qs = quote_styles; qs->name; qs++) {
- if (qs->style == quoting)
+ if ((int)qs->style == quoting)
return 0;
}
PyErr_Format(PyExc_TypeError, "bad \"quoting\" value");
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -1606,7 +1606,7 @@
"Memory cannot be resized because this object doesn't own it");
return NULL;
}
- if (size <= sizeof(obj->b_value)) {
+ if ((size_t)size <= sizeof(obj->b_value)) {
/* internal default buffer is large enough */
obj->b_size = size;
goto done;
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -3741,7 +3741,7 @@
if (expat_capi) {
/* check that it's usable */
if (strcmp(expat_capi->magic, PyExpat_CAPI_MAGIC) != 0 ||
- expat_capi->size < sizeof(struct PyExpat_CAPI) ||
+ (size_t)expat_capi->size < sizeof(struct PyExpat_CAPI) ||
expat_capi->MAJOR_VERSION != XML_MAJOR_VERSION ||
expat_capi->MINOR_VERSION != XML_MINOR_VERSION ||
expat_capi->MICRO_VERSION != XML_MICRO_VERSION) {
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -53,10 +53,12 @@
Py_ssize_t copy_size;
char *new_buf;
- if((! truncate) && preferred_size < self->string_size) {
+ if((! truncate) && preferred_size < (size_t)self->string_size) {
preferred_size = self->string_size;
}
+ /* PyMem_Malloc() returns NULL if preferred_size is bigger
+ than PY_SSIZE_T_MAX */
new_buf = (char *)PyMem_Malloc(preferred_size);
if (new_buf == NULL) {
PyErr_NoMemory();
@@ -64,7 +66,7 @@
}
copy_size = self->string_size;
- if (copy_size > preferred_size) {
+ if ((size_t)copy_size > preferred_size) {
copy_size = preferred_size;
}
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -1730,7 +1730,7 @@
else {
/* Non-universal mode. */
Py_ssize_t readnl_len = PyUnicode_GET_LENGTH(readnl);
- char *nl = PyUnicode_DATA(readnl);
+ Py_UCS1 *nl = PyUnicode_1BYTE_DATA(readnl);
/* Assume that readnl is an ASCII character. */
assert(PyUnicode_KIND(readnl) == PyUnicode_1BYTE_KIND);
if (readnl_len == 1) {
diff --git a/Modules/_sre.c b/Modules/_sre.c
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1236,7 +1236,7 @@
};
PyObject *result = NULL;
PyObject *flag_items;
- int i;
+ size_t i;
int flags = obj->flags;
/* Omit re.UNICODE for valid string patterns. */
diff --git a/Modules/_struct.c b/Modules/_struct.c
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -1263,7 +1263,8 @@
const char *s;
const char *fmt;
char c;
- Py_ssize_t size, len, ncodes, num, itemsize;
+ Py_ssize_t size, len, num, itemsize;
+ size_t ncodes;
fmt = PyBytes_AS_STRING(self->s_format);
@@ -1319,7 +1320,7 @@
}
/* check for overflow */
- if ((ncodes + 1) > (PY_SSIZE_T_MAX / sizeof(formatcode))) {
+ if ((ncodes + 1) > ((size_t)PY_SSIZE_T_MAX / sizeof(formatcode))) {
PyErr_NoMemory();
return -1;
}
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -1719,7 +1719,7 @@
{-0xffffL, 16, -1},
{0xfffffffL, 28, 1},
{-0xfffffffL, 28, -1}};
- int i;
+ size_t i;
for (i = 0; i < Py_ARRAY_LENGTH(testcases); ++i) {
size_t nbits;
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1414,7 +1414,7 @@
return 0;
}
s = PyBytes_AsString(in);
- if (strlen(s) != PyBytes_Size(in)) {
+ if (strlen(s) != (size_t)PyBytes_Size(in)) {
PyErr_SetString(PyExc_ValueError, "null byte in bytes object");
return 0;
}
@@ -1431,7 +1431,7 @@
PyErr_SetString(PyExc_OverflowError, "string is too long");
return 0;
}
- if (strlen(s) != size) {
+ if (strlen(s) != (size_t)size) {
PyErr_SetString(PyExc_ValueError, "null character in string");
return 0;
}
diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c
--- a/Modules/_tracemalloc.c
+++ b/Modules/_tracemalloc.c
@@ -79,7 +79,7 @@
(sizeof(traceback_t) + sizeof(frame_t) * (NFRAME - 1))
#define MAX_NFRAME \
- ((INT_MAX - sizeof(traceback_t)) / sizeof(frame_t) + 1)
+ (((size_t)INT_MAX - sizeof(traceback_t)) / sizeof(frame_t) + 1)
static PyObject *unknown_filename = NULL;
static traceback_t tracemalloc_empty_traceback;
@@ -874,7 +874,7 @@
return 0;
}
- assert(1 <= max_nframe && max_nframe <= MAX_NFRAME);
+ assert(1 <= max_nframe && (size_t)max_nframe <= MAX_NFRAME);
tracemalloc_config.max_nframe = max_nframe;
/* allocate a buffer to store a new traceback */
@@ -1226,7 +1226,7 @@
if (!PyArg_ParseTuple(args, "|n:start", &nframe))
return NULL;
- if (nframe < 1 || nframe > MAX_NFRAME) {
+ if (nframe < 1 || (size_t)nframe > MAX_NFRAME) {
PyErr_Format(PyExc_ValueError,
"the number of frames must be in range [1; %i]",
(int)MAX_NFRAME);
@@ -1388,7 +1388,7 @@
if (nframe == -1 && PyErr_Occurred())
return -1;
- if (nframe < 1 || nframe > MAX_NFRAME)
+ if (nframe < 1 || (size_t)nframe > MAX_NFRAME)
return -1;
return Py_SAFE_DOWNCAST(nframe, long, int);
@@ -1412,7 +1412,7 @@
value = strtol(p, &endptr, 10);
if (*endptr != '\0'
|| value < 1
- || value > MAX_NFRAME
+ || (size_t)value > MAX_NFRAME
|| errno == ERANGE)
{
Py_FatalError("PYTHONTRACEMALLOC: invalid number of frames");
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -2000,7 +2000,7 @@
*/
for (descr = descriptors; descr->typecode != '\0'; descr++) {
if (descr->is_integer_type &&
- descr->itemsize == mf_descr.size &&
+ (size_t)descr->itemsize == mf_descr.size &&
descr->is_signed == mf_descr.is_signed)
typecode = descr->typecode;
}
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -902,7 +902,7 @@
#endif
narrow = PyBytes_AS_STRING(bytes);
- if (length != strlen(narrow)) {
+ if ((size_t)length != strlen(narrow)) {
FORMAT_EXCEPTION(PyExc_ValueError, "embedded NUL character in %s");
Py_DECREF(bytes);
return 0;
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list