OSDN Git Service

Say explicitly if there were no leaks.
authorElliott Hughes <enh@google.com>
Wed, 30 Jan 2013 19:38:26 +0000 (11:38 -0800)
committerElliott Hughes <enh@google.com>
Wed, 30 Jan 2013 19:38:26 +0000 (11:38 -0800)
Otherwise people trying to use this are left wondering "did I not leak, or did
the leak checking code not get called when I exited?".

Change-Id: If79b225f8a2e24dd69aba1fb836bf9e81bb00efe

libc/bionic/malloc_debug_check.cpp

index 18c3ed4..394b8bb 100644 (file)
@@ -437,10 +437,6 @@ extern "C" void *chk_calloc(int nmemb, size_t size) {
 }
 
 static void heaptracker_free_leaked_memory() {
-  if (gAllocatedBlockCount == 0) {
-    return;
-  }
-
   // Use /proc/self/exe link to obtain the program name for logging
   // purposes. If it's not available, we set it to "<unknown>".
   char exe[PATH_MAX];
@@ -451,6 +447,11 @@ static void heaptracker_free_leaked_memory() {
     exe[count] = '\0';
   }
 
+  if (gAllocatedBlockCount == 0) {
+    log_message("+++ %s did not leak", exe);
+    return;
+  }
+
   size_t index = 1;
   const size_t total = gAllocatedBlockCount;
   while (head != NULL) {