diff options
Diffstat (limited to 'lib/mem/galloc.c')
-rw-r--r-- | lib/mem/galloc.c | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/lib/mem/galloc.c b/lib/mem/galloc.c index 642e010..ea4ea16 100644 --- a/lib/mem/galloc.c +++ b/lib/mem/galloc.c @@ -1,29 +1,46 @@ -#include <lib/mem/galloc.h> + #include <lib/mem/galloc.h> #include <stdlib.h> +#include <stdio.h> static ssize_t standing_allocations = 0; -void *g_malloc(size_t size) { +void *_g_malloc(size_t size, char* file, unsigned int line) { void *ptr = malloc(size); if (ptr == NULL) { return ptr; } + fprintf(stderr, "+%p :a: %s:%d\n", ptr, file, line); standing_allocations++; return ptr; } -void *g_calloc(size_t n_memb, size_t size) { +void *_g_calloc(size_t n_memb, size_t size, char* file, unsigned int line) { void *ptr = calloc(n_memb, size); if (ptr == NULL) { return ptr; } + fprintf(stderr, "+%p :c: %s:%d\n", ptr, file, line); standing_allocations++; return ptr; } -void g_free(void *ptr) { - free(ptr); - standing_allocations--; +void *_g_realloc(void *ptr, size_t size, char* file, unsigned int line) { + fprintf(stderr, "-%p :r: %s:%d\n", ptr, file, line); + void* temp = realloc(ptr, size); + if (temp == NULL) { + fprintf(stderr, "+%p :r: %s:%d\n", ptr, file, line); + } else { + fprintf(stderr, "+%p :r: %s:%d\n", temp, file, line); + } + return temp; +} + +void _g_free(void *ptr, char* file, unsigned int line) { + if (ptr != NULL) { + fprintf(stderr, "-%p :f: %s:%d\n", ptr, file, line); + free(ptr); + standing_allocations--; + } } ssize_t g_outstanding_allocations() { return standing_allocations; } |