Issue #4850: Change COUNT_ALLOCS variables to Py_ssize_t.

This commit is contained in:
Martin v. Löwis 2009-01-07 18:40:40 +00:00
parent e6dc53120d
commit b90304acb9
5 changed files with 20 additions and 12 deletions

View file

@ -12,6 +12,8 @@ What's New in Python 2.7 alpha 1
Core and Builtins 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 - Issue #1180193: When importing a module from a .pyc (or .pyo) file with
an existing .py counterpart, override the co_filename attributes of all an existing .py counterpart, override the co_filename attributes of all
code objects if the original filename is obsolete (which can happen if the code objects if the original filename is obsolete (which can happen if the

View file

@ -78,7 +78,8 @@ fill_free_list(void)
static PyIntObject *small_ints[NSMALLNEGINTS + NSMALLPOSINTS]; static PyIntObject *small_ints[NSMALLNEGINTS + NSMALLPOSINTS];
#endif #endif
#ifdef COUNT_ALLOCS #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 #endif
PyObject * PyObject *

View file

@ -81,24 +81,29 @@ static PyTypeObject *type_list;
garbage itself. If unlist_types_without_objects garbage itself. If unlist_types_without_objects
is set, they will be removed from the type_list is set, they will be removed from the type_list
once the last object is deallocated. */ once the last object is deallocated. */
int unlist_types_without_objects; static int unlist_types_without_objects;
extern int tuple_zero_allocs, fast_tuple_allocs; extern Py_ssize_t tuple_zero_allocs, fast_tuple_allocs;
extern int quick_int_allocs, quick_neg_int_allocs; extern Py_ssize_t quick_int_allocs, quick_neg_int_allocs;
extern int null_strings, one_strings; extern Py_ssize_t null_strings, one_strings;
void void
dump_counts(FILE* f) dump_counts(FILE* f)
{ {
PyTypeObject *tp; PyTypeObject *tp;
for (tp = type_list; tp; tp = tp->tp_next) 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_name, tp->tp_allocs, tp->tp_frees,
tp->tp_maxalloc); 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); 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); 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); null_strings, one_strings);
} }

View file

@ -7,7 +7,7 @@
#include <stddef.h> #include <stddef.h>
#ifdef COUNT_ALLOCS #ifdef COUNT_ALLOCS
int null_strings, one_strings; Py_ssize_t null_strings, one_strings;
#endif #endif
static PyStringObject *characters[UCHAR_MAX + 1]; static PyStringObject *characters[UCHAR_MAX + 1];

View file

@ -19,8 +19,8 @@ static PyTupleObject *free_list[PyTuple_MAXSAVESIZE];
static int numfree[PyTuple_MAXSAVESIZE]; static int numfree[PyTuple_MAXSAVESIZE];
#endif #endif
#ifdef COUNT_ALLOCS #ifdef COUNT_ALLOCS
int fast_tuple_allocs; Py_ssize_t fast_tuple_allocs;
int tuple_zero_allocs; Py_ssize_t tuple_zero_allocs;
#endif #endif
PyObject * PyObject *