Issue #13390: New function :func:sys.getallocatedblocks() returns the number of memory blocks currently allocated.

Also, the ``-R`` option to regrtest uses this function to guard against memory allocation leaks.
This commit is contained in:
Antoine Pitrou 2012-12-09 14:28:26 +01:00
parent b4b8f234d4
commit f9d0b1256f
9 changed files with 123 additions and 22 deletions

View file

@ -894,6 +894,19 @@ one higher than you might expect, because it includes the (temporary)\n\
reference as an argument to getrefcount()."
);
static PyObject *
sys_getallocatedblocks(PyObject *self)
{
return PyLong_FromSsize_t(_Py_GetAllocatedBlocks());
}
PyDoc_STRVAR(getallocatedblocks_doc,
"getallocatedblocks() -> integer\n\
\n\
Return the number of memory blocks currently allocated, regardless of their\n\
size."
);
#ifdef COUNT_ALLOCS
static PyObject *
sys_getcounts(PyObject *self)
@ -1062,6 +1075,8 @@ static PyMethodDef sys_methods[] = {
{"getdlopenflags", (PyCFunction)sys_getdlopenflags, METH_NOARGS,
getdlopenflags_doc},
#endif
{"getallocatedblocks", (PyCFunction)sys_getallocatedblocks, METH_NOARGS,
getallocatedblocks_doc},
#ifdef COUNT_ALLOCS
{"getcounts", (PyCFunction)sys_getcounts, METH_NOARGS},
#endif