diff --git a/CHANGES/1225.bugfix.rst b/CHANGES/1225.bugfix.rst new file mode 120000 index 000000000..81bf8d823 --- /dev/null +++ b/CHANGES/1225.bugfix.rst @@ -0,0 +1 @@ +1226.bugfix.rst \ No newline at end of file diff --git a/CHANGES/1226.bugfix.rst b/CHANGES/1226.bugfix.rst new file mode 100644 index 000000000..de4b67994 --- /dev/null +++ b/CHANGES/1226.bugfix.rst @@ -0,0 +1 @@ +Fixed format string compilation errors in debug builds on 32-bit platforms by using portable ``%zd`` format specifiers for ``Py_ssize_t`` values instead of ``%ld`` -- by :user:`bdraco`. \ No newline at end of file diff --git a/multidict/_multilib/hashtable.h b/multidict/_multilib/hashtable.h index 438acbc90..0e0a28e50 100644 --- a/multidict/_multilib/hashtable.h +++ b/multidict/_multilib/hashtable.h @@ -1963,7 +1963,7 @@ static inline int _md_dump(MultiDictObject *md) { htkeys_t *keys = md->keys; - printf("Dump %p [%ld from %ld usable %ld nentries %ld]\n", + printf("Dump %p [%zd from %zd usable %zd nentries %zd]\n", (void *)md, md->used, htkeys_nslots(keys), @@ -1971,7 +1971,7 @@ _md_dump(MultiDictObject *md) keys->nentries); for (Py_ssize_t i = 0; i < htkeys_nslots(keys); i++) { Py_ssize_t ix = htkeys_get_index(keys, i); - printf(" %ld -> %ld\n", i, ix); + printf(" %zd -> %zd\n", i, ix); } printf(" --------\n"); entry_t *entries = htkeys_entries(keys); @@ -1980,9 +1980,9 @@ _md_dump(MultiDictObject *md) PyObject *identity = entry->identity; if (identity == NULL) { - printf(" %ld [deleted]\n", i); + printf(" %zd [deleted]\n", i); } else { - printf(" %ld h=%20ld, i=\'", i, entry->hash); + printf(" %zd h=%20zd, i=\'", i, entry->hash); PyObject_Print(entry->identity, stdout, Py_PRINT_RAW); printf("\', k=\'"); PyObject_Print(entry->key, stdout, Py_PRINT_RAW);