diff options
author | Chris Hall <chris.hall.list.highwayman.com> | 2010-07-23 11:27:11 -0700 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2011-03-21 11:09:13 +0000 |
commit | cca85d27a59c31e1b20e4c4adc7d9bb57606e584 (patch) | |
tree | 2330a624f08c04a4125dc3153c97d93361c2da85 | |
parent | d1de1c25962b5470f3825bc82d15e4dd29e1f842 (diff) |
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.
-rw-r--r-- | lib/memory.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/memory.c b/lib/memory.c index 4bac31db..4090fd90 100644 --- a/lib/memory.c +++ b/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); + } } /* |