Kaydet (Commit) 440d8982 authored tarafından Mark Hammond's avatar Mark Hammond

Added a new debug method sys.gettotalrefcount(), which returns the total number…

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.
üst abf17032
......@@ -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
......
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