Issue #4850: Change COUNT_ALLOCS variables to Py_ssize_t.
diff --git a/Misc/NEWS b/Misc/NEWS
index cd6bec6..7a903d2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
Core and Builtins
-----------------
+- Issue #4850: Change COUNT_ALLOCS variables to Py_ssize_t.
+
- Issue #1180193: When importing a module from a .pyc (or .pyo) file with
an existing .py counterpart, override the co_filename attributes of all
code objects if the original filename is obsolete (which can happen if the
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 9baee8e..d4532f4 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -78,7 +78,8 @@
static PyIntObject *small_ints[NSMALLNEGINTS + NSMALLPOSINTS];
#endif
#ifdef COUNT_ALLOCS
-int quick_int_allocs, quick_neg_int_allocs;
+Py_ssize_t quick_int_allocs;
+Py_ssize_t quick_neg_int_allocs;
#endif
PyObject *
diff --git a/Objects/object.c b/Objects/object.c
index 7b82db9..1e0db4a 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -81,24 +81,29 @@
garbage itself. If unlist_types_without_objects
is set, they will be removed from the type_list
once the last object is deallocated. */
-int unlist_types_without_objects;
-extern int tuple_zero_allocs, fast_tuple_allocs;
-extern int quick_int_allocs, quick_neg_int_allocs;
-extern int null_strings, one_strings;
+static int unlist_types_without_objects;
+extern Py_ssize_t tuple_zero_allocs, fast_tuple_allocs;
+extern Py_ssize_t quick_int_allocs, quick_neg_int_allocs;
+extern Py_ssize_t null_strings, one_strings;
void
dump_counts(FILE* f)
{
PyTypeObject *tp;
for (tp = type_list; tp; tp = tp->tp_next)
- fprintf(f, "%s alloc'd: %d, freed: %d, max in use: %d\n",
+ fprintf(f, "%s alloc'd: %" PY_FORMAT_SIZE_T "d, "
+ "freed: %" PY_FORMAT_SIZE_T "d, "
+ "max in use: %" PY_FORMAT_SIZE_T "d\n",
tp->tp_name, tp->tp_allocs, tp->tp_frees,
tp->tp_maxalloc);
- fprintf(f, "fast tuple allocs: %d, empty: %d\n",
+ fprintf(f, "fast tuple allocs: %" PY_FORMAT_SIZE_T "d, "
+ "empty: %" PY_FORMAT_SIZE_T "d\n",
fast_tuple_allocs, tuple_zero_allocs);
- fprintf(f, "fast int allocs: pos: %d, neg: %d\n",
+ fprintf(f, "fast int allocs: pos: %" PY_FORMAT_SIZE_T "d, "
+ "neg: %" PY_FORMAT_SIZE_T "d\n",
quick_int_allocs, quick_neg_int_allocs);
- fprintf(f, "null strings: %d, 1-strings: %d\n",
+ fprintf(f, "null strings: %" PY_FORMAT_SIZE_T "d, "
+ "1-strings: %" PY_FORMAT_SIZE_T "d\n",
null_strings, one_strings);
}
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 2c365fb..8f82f4f 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -7,7 +7,7 @@
#include <stddef.h>
#ifdef COUNT_ALLOCS
-int null_strings, one_strings;
+Py_ssize_t null_strings, one_strings;
#endif
static PyStringObject *characters[UCHAR_MAX + 1];
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index b1a7003..d7cb25a 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -19,8 +19,8 @@
static int numfree[PyTuple_MAXSAVESIZE];
#endif
#ifdef COUNT_ALLOCS
-int fast_tuple_allocs;
-int tuple_zero_allocs;
+Py_ssize_t fast_tuple_allocs;
+Py_ssize_t tuple_zero_allocs;
#endif
PyObject *