mirror of
https://github.com/python/cpython
synced 2024-09-16 00:17:02 +00:00
Added a new debug method sys.gettotalrefcount(), which returns the total number of references on all Python objects. This is only enabled when Py_TRACE_REFS is defined (which includes default debug builds under Windows).
Also removed a redundant cast from sys.getrefcount(), as discussed on the patches list.
This commit is contained in:
parent
abf17032a4
commit
440d898230
|
@ -265,9 +265,21 @@ sys_getrefcount(self, args)
|
|||
PyObject *arg;
|
||||
if (!PyArg_ParseTuple(args, "O:getrefcount", &arg))
|
||||
return NULL;
|
||||
return PyInt_FromLong((long) arg->ob_refcnt);
|
||||
return PyInt_FromLong(arg->ob_refcnt);
|
||||
}
|
||||
|
||||
#ifdef Py_TRACE_REFS
|
||||
static PyObject *
|
||||
sys_gettotalrefcount(PyObject *self, PyObject *args)
|
||||
{
|
||||
extern long _Py_RefTotal;
|
||||
if (!PyArg_ParseTuple(args, ":gettotalrefcount"))
|
||||
return NULL;
|
||||
return PyInt_FromLong(_Py_RefTotal);
|
||||
}
|
||||
|
||||
#endif /* Py_TRACE_REFS */
|
||||
|
||||
static char getrefcount_doc[] =
|
||||
"getrefcount(object) -> integer\n\
|
||||
\n\
|
||||
|
@ -310,6 +322,7 @@ static PyMethodDef sys_methods[] = {
|
|||
#endif
|
||||
#ifdef Py_TRACE_REFS
|
||||
{"getobjects", _Py_GetObjects, 1},
|
||||
{"gettotalrefcount", sys_gettotalrefcount, 1},
|
||||
#endif
|
||||
{"getrefcount", sys_getrefcount, 1, getrefcount_doc},
|
||||
#ifdef USE_MALLOPT
|
||||
|
|
Loading…
Reference in a new issue