Browse Source

lib: Fix accounting of memory

* lib/memory.c: (zrealloc) If is called with NULL pointer then it should
  increment allocations because it behaves the same as zmalloc.

  (zfree) is called with NULL pointer, it does nothing therefore allocation
  count should not change.
Chris Hall 10 years ago
parent
commit
cca85d27a5
1 changed files with 8 additions and 2 deletions
  1. 8 2
      lib/memory.c

+ 8 - 2
lib/memory.c

@@ -111,6 +111,9 @@ zrealloc (int type, void *ptr, size_t size)
   memory = realloc (ptr, size);
   if (memory == NULL)
     zerror ("realloc", type, size);
+  if (ptr == NULL)
+    alloc_inc (type);
+
   return memory;
 }
 
@@ -123,8 +126,11 @@ zrealloc (int type, void *ptr, size_t size)
 void
 zfree (int type, void *ptr)
 {
-  alloc_dec (type);
-  free (ptr);
+  if (ptr != NULL)
+    {
+      alloc_dec (type);
+      free (ptr);
+    }
 }
 
 /*