Commit 92840530 authored by Antoine Pitrou's avatar Antoine Pitrou

Following issue #13390, fix compilation --without-pymalloc, and make...

Following issue #13390, fix compilation --without-pymalloc, and make sys.getallocatedblocks() return 0 in that situation.
parent 3438fa49
......@@ -396,15 +396,16 @@ always available.
.. function:: getallocatedblocks()
Return the number of memory blocks currently allocated by the interpreter,
regardless of their size. This function is mainly useful for debugging
small memory leaks. Because of the interpreter's internal caches, the
result can vary from call to call; you may have to call
:func:`_clear_type_cache()` to get more predictable results.
regardless of their size. This function is mainly useful for tracking
and debugging memory leaks. Because of the interpreter's internal
caches, the result can vary from call to call; you may have to call
:func:`_clear_type_cache()` and :func:`gc.collect()` to get more
predictable results.
.. versionadded:: 3.4
If a Python build or implementation cannot reasonably compute this
information, :func:`getallocatedblocks()` is allowed to return 0 instead.
.. impl-detail::
Not all Python implementations may be able to return this information.
.. versionadded:: 3.4
.. function:: getcheckinterval()
......
......@@ -7,6 +7,7 @@ import warnings
import operator
import codecs
import gc
import sysconfig
# count the number of test runs, used to create unique
# strings to intern in test_intern()
......@@ -616,9 +617,13 @@ class SysModuleTest(unittest.TestCase):
"sys.getallocatedblocks unavailable on this build")
def test_getallocatedblocks(self):
# Some sanity checks
with_pymalloc = sysconfig.get_config_var('WITH_PYMALLOC')
a = sys.getallocatedblocks()
self.assertIs(type(a), int)
if with_pymalloc:
self.assertGreater(a, 0)
else:
self.assertEqual(a, 0)
try:
# While we could imagine a Python session where the number of
# multiple buffer objects would exceed the sharing of references,
......
......@@ -1316,6 +1316,13 @@ PyObject_Free(void *p)
{
PyMem_FREE(p);
}
Py_ssize_t
_Py_GetAllocatedBlocks(void)
{
return 0;
}
#endif /* WITH_PYMALLOC */
#ifdef PYMALLOC_DEBUG
......
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