Commit 4281cef2 authored by Neal Norwitz's avatar Neal Norwitz

Use Py_ssize_t for _Py_RefTotal.

I tried to handle Win64 properly, but please review.
parent 9589ee27
......@@ -568,7 +568,7 @@ environment the global variable trick is not safe.)
* #ifdefs (we used to do that -- it was impenetrable).
*/
#ifdef Py_REF_DEBUG
PyAPI_DATA(long) _Py_RefTotal;
PyAPI_DATA(Py_ssize_t) _Py_RefTotal;
PyAPI_FUNC(void) _Py_NegativeRefcount(const char *fname,
int lineno, PyObject *op);
#define _Py_INC_REFTOTAL _Py_RefTotal++
......
......@@ -29,6 +29,16 @@
#include "windows.h"
#endif
#ifndef Py_REF_DEBUG
# define PRINT_TOTAL_REFS()
#else /* Py_REF_DEBUG */
# if defined(MS_WIN64)
# define PRINT_TOTAL_REFS() fprintf(stderr, "[%zd refs]\n", _Py_RefTotal);
# else /* ! MS_WIN64 */
# define PRINT_TOTAL_REFS() fprintf(stderr, "[%ld refs]\n", _Py_RefTotal);
# endif /* MS_WIN64 */
#endif
extern char *Py_GetPath(void);
extern grammar _PyParser_Grammar; /* From graminit.c */
......@@ -382,9 +392,7 @@ Py_Finalize(void)
dump_counts();
#endif
#ifdef Py_REF_DEBUG
fprintf(stderr, "[%ld refs]\n", _Py_RefTotal);
#endif
PRINT_TOTAL_REFS()
#ifdef Py_TRACE_REFS
/* Display all objects still alive -- this can invoke arbitrary
......@@ -674,9 +682,7 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flag
}
for (;;) {
ret = PyRun_InteractiveOneFlags(fp, filename, flags);
#ifdef Py_REF_DEBUG
fprintf(stderr, "[%ld refs]\n", _Py_RefTotal);
#endif
PRINT_TOTAL_REFS()
if (ret == E_EOF)
return 0;
/*
......
......@@ -604,7 +604,7 @@ sys_getrefcount(PyObject *self, PyObject *arg)
static PyObject *
sys_gettotalrefcount(PyObject *self)
{
return PyInt_FromLong(_Py_RefTotal);
return PyInt_FromSsize_t(_Py_RefTotal);
}
#endif /* Py_TRACE_REFS */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment