]> granicus.if.org Git - python/commitdiff
Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks() when running...
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 5 Apr 2013 23:15:30 +0000 (01:15 +0200)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 5 Apr 2013 23:15:30 +0000 (01:15 +0200)
Misc/NEWS
Objects/obmalloc.c

index d72e8bb9bb730e60d7eda14e8f8fd429a3a6e359..f60f892b08bd5d3a30902892201aad6299fb361f 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1?
 Core and Builtins
 -----------------
 
+- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
+  when running on valgrind.
+
 - Issue #17619: Make input() check for Ctrl-C correctly on Windows.
 
 - Issue #17357: Add missing verbosity messages for -v/-vv that were lost during
index 5943f5a6c36a35f6d5f6ab250b9b23d461d40489..3028f225ae709f8957826322b476dc3e83ac4abe 100644 (file)
@@ -778,6 +778,8 @@ PyObject_Malloc(size_t nbytes)
     poolp next;
     uint size;
 
+    _Py_AllocatedBlocks++;
+
 #ifdef WITH_VALGRIND
     if (UNLIKELY(running_on_valgrind == -1))
         running_on_valgrind = RUNNING_ON_VALGRIND;
@@ -791,10 +793,10 @@ PyObject_Malloc(size_t nbytes)
      * things without checking for overflows or negatives.
      * As size_t is unsigned, checking for nbytes < 0 is not required.
      */
-    if (nbytes > PY_SSIZE_T_MAX)
+    if (nbytes > PY_SSIZE_T_MAX) {
+        _Py_AllocatedBlocks--;
         return NULL;
-
-    _Py_AllocatedBlocks++;
+    }
 
     /*
      * This implicitly redirects malloc(0).