summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-01 06:57:10 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-07-01 06:57:10 (GMT)
commit293f3f526d9c0a9b8e9e5a478bc57975f9cfe3c5 (patch)
tree7d047c1622e5fa442ad7ce0a885bd408742ec63f
parent529ea5d184c4b7a8ee118557c8a8f46016476e69 (diff)
downloadcpython-293f3f526d9c0a9b8e9e5a478bc57975f9cfe3c5.zip
cpython-293f3f526d9c0a9b8e9e5a478bc57975f9cfe3c5.tar.gz
cpython-293f3f526d9c0a9b8e9e5a478bc57975f9cfe3c5.tar.bz2
Closes #21892, #21893: Use PY_FORMAT_SIZE_T instead of %zi or %zu to format C
size_t, because %zi/%u is not supported on all platforms.
-rw-r--r--Modules/hashtable.c5
-rw-r--r--Objects/unicodeobject.c34
2 files changed, 26 insertions, 13 deletions
diff --git a/Modules/hashtable.c b/Modules/hashtable.c
index aaded46..133f313 100644
--- a/Modules/hashtable.c
+++ b/Modules/hashtable.c
@@ -233,11 +233,12 @@ _Py_hashtable_print_stats(_Py_hashtable_t *ht)
nchains++;
}
}
- printf("hash table %p: entries=%zu/%zu (%.0f%%), ",
+ printf("hash table %p: entries=%"
+ PY_FORMAT_SIZE_T "u/%" PY_FORMAT_SIZE_T "u (%.0f%%), ",
ht, ht->entries, ht->num_buckets, load * 100.0);
if (nchains)
printf("avg_chain_len=%.1f, ", (double)total_chain_len / nchains);
- printf("max_chain_len=%zu, %zu kB\n",
+ printf("max_chain_len=%" PY_FORMAT_SIZE_T "u, %" PY_FORMAT_SIZE_T "u kB\n",
max_chain_len, size / 1024);
}
#endif
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index ec22239..6296d7d 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1011,17 +1011,19 @@ _PyUnicode_Dump(PyObject *op)
}
else
data = unicode->data.any;
- printf("%s: len=%zu, ",unicode_kind_name(op), ascii->length);
+ printf("%s: len=%" PY_FORMAT_SIZE_T "u, ",
+ unicode_kind_name(op), ascii->length);
if (ascii->wstr == data)
printf("shared ");
printf("wstr=%p", ascii->wstr);
if (!(ascii->state.ascii == 1 && ascii->state.compact == 1)) {
- printf(" (%zu), ", compact->wstr_length);
+ printf(" (%" PY_FORMAT_SIZE_T "u), ", compact->wstr_length);
if (!ascii->state.compact && compact->utf8 == unicode->data.any)
printf("shared ");
- printf("utf8=%p (%zu)", compact->utf8, compact->utf8_length);
+ printf("utf8=%p (%" PY_FORMAT_SIZE_T "u)",
+ compact->utf8, compact->utf8_length);
}
printf(", data=%p\n", data);
}
@@ -1370,8 +1372,9 @@ PyUnicode_CopyCharacters(PyObject *to, Py_ssize_t to_start,
how_many = Py_MIN(PyUnicode_GET_LENGTH(from), how_many);
if (to_start + how_many > PyUnicode_GET_LENGTH(to)) {
PyErr_Format(PyExc_SystemError,
- "Cannot write %zi characters at %zi "
- "in a string of %zi characters",
+ "Cannot write %" PY_FORMAT_SIZE_T "i characters at %"
+ PY_FORMAT_SIZE_T "i in a string of %"
+ PY_FORMAT_SIZE_T "i characters",
how_many, to_start, PyUnicode_GET_LENGTH(to));
return -1;
}
@@ -4080,7 +4083,9 @@ unicode_decode_call_errorhandler_wchar(
if (newpos<0)
newpos = insize+newpos;
if (newpos<0 || newpos>insize) {
- PyErr_Format(PyExc_IndexError, "position %zd from error handler out of bounds", newpos);
+ PyErr_Format(PyExc_IndexError,
+ "position %" PY_FORMAT_SIZE_T
+ "d from error handler out of bounds", newpos);
goto onError;
}
@@ -4173,7 +4178,9 @@ unicode_decode_call_errorhandler_writer(
if (newpos<0)
newpos = insize+newpos;
if (newpos<0 || newpos>insize) {
- PyErr_Format(PyExc_IndexError, "position %zd from error handler out of bounds", newpos);
+ PyErr_Format(PyExc_IndexError,
+ "position %" PY_FORMAT_SIZE_T
+ "d from error handler out of bounds", newpos);
goto onError;
}
@@ -6436,7 +6443,9 @@ unicode_encode_call_errorhandler(const char *errors,
if (*newpos<0)
*newpos = len + *newpos;
if (*newpos<0 || *newpos>len) {
- PyErr_Format(PyExc_IndexError, "position %zd from error handler out of bounds", *newpos);
+ PyErr_Format(PyExc_IndexError,
+ "position %" PY_FORMAT_SIZE_T
+ "d from error handler out of bounds", *newpos);
Py_DECREF(restuple);
return NULL;
}
@@ -8459,7 +8468,9 @@ unicode_translate_call_errorhandler(const char *errors,
else
*newpos = i_newpos;
if (*newpos<0 || *newpos>PyUnicode_GET_LENGTH(unicode)) {
- PyErr_Format(PyExc_IndexError, "position %zd from error handler out of bounds", *newpos);
+ PyErr_Format(PyExc_IndexError,
+ "position %" PY_FORMAT_SIZE_T
+ "d from error handler out of bounds", *newpos);
Py_DECREF(restuple);
return NULL;
}
@@ -9741,7 +9752,8 @@ PyUnicode_Join(PyObject *separator, PyObject *seq)
item = items[i];
if (!PyUnicode_Check(item)) {
PyErr_Format(PyExc_TypeError,
- "sequence item %zd: expected str instance,"
+ "sequence item %" PY_FORMAT_SIZE_T
+ "d: expected str instance,"
" %.80s found",
i, Py_TYPE(item)->tp_name);
goto onError;
@@ -14440,7 +14452,7 @@ unicode_format_arg_format(struct unicode_formatter_t *ctx,
default:
PyErr_Format(PyExc_ValueError,
"unsupported format character '%c' (0x%x) "
- "at index %zd",
+ "at index %" PY_FORMAT_SIZE_T "d",
(31<=arg->ch && arg->ch<=126) ? (char)arg->ch : '?',
(int)arg->ch,
ctx->fmtpos - 1);