commit 4d9aedf0e1c5091570233b29d270d3127bbffcb5
parent 584a372a37cfb2aa7e57ad6a881bcdd8d89da11c
Author: vaplv <vaplv@free.fr>
Date: Wed, 6 Nov 2013 15:16:42 +0100
Track default memory allocations in release
Diffstat:
2 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/src/mem_allocator.c b/src/mem_allocator.c
@@ -9,6 +9,8 @@
/*******************************************************************************
* Default allocator functions
******************************************************************************/
+#define TRACK_DEFAULT_ALLOC /* Enable the tracking of default allocations */
+
struct alloc_counter {
atomic_size_T nb_allocs;
atomic_size_T allocated_size;
@@ -28,7 +30,7 @@ default_alloc
if(size) {
mem = malloc(size);
- #ifdef NDEBUG
+ #ifndef TRACK_DEFAULT_ALLOC
(void)data;
#else
ASSERT(data);
@@ -38,7 +40,7 @@ default_alloc
ATOMIC_ADD(&counter->allocated_size, size_mem);
ATOMIC_INCR(&counter->nb_allocs);
}
- #endif
+ #endif /* TRACK_DEFAULT_ALLOC */
}
return mem;
}
@@ -47,7 +49,7 @@ static void
default_free(void* data, void* mem)
{
if(mem) {
- #ifdef NDEBUG
+ #ifndef TRACK_DEFAULT_ALLOC
(void)data;
#else
struct alloc_counter* counter = data;
@@ -59,7 +61,7 @@ default_free(void* data, void* mem)
ATOMIC_SUB(&counter->allocated_size, size_mem);
ATOMIC_DECR(&counter->nb_allocs);
- #endif
+ #endif /* TRACK_DEFAULT_ALLOC */
free(mem);
}
}
@@ -92,7 +94,7 @@ default_realloc
{
void* new_mem = NULL;
- #ifdef NDEBUG
+ #ifndef TRACK_DEFAULT_ALLOC
(void)data;
(void)filename;
(void)fileline;
@@ -116,7 +118,7 @@ default_realloc
ATOMIC_ADD(&counter->allocated_size, size_new);
}
}
- #endif
+ #endif /* TRACK_DEFAULT_ALLOC */
return new_mem;
}
@@ -135,7 +137,7 @@ default_aligned_alloc
if(size && IS_POWER_OF_2(alignment)) {
mem = memalign(alignment, size);
- #ifdef NDEBUG
+ #ifndef TRACK_DEFAULT_ALLOC
(void)data;
#else
ASSERT(data);
@@ -145,7 +147,7 @@ default_aligned_alloc
ATOMIC_ADD(&counter->allocated_size, size_mem);
ATOMIC_INCR(&counter->nb_allocs);
}
- #endif
+ #endif /* TRACK_DEFAULT_ALLOC */
}
return mem;
}
@@ -153,23 +155,23 @@ default_aligned_alloc
static size_t
default_allocated_size(const void* data)
{
- #ifdef NDEBUG
+ #ifndef TRACK_DEFAULT_ALLOC
(void)data;
return 0;
#else
const struct alloc_counter* counter = data;
ASSERT(counter != NULL);
return counter->allocated_size;
- #endif
+ #endif /* TRACK_DEFAULT_ALLOC */
}
static size_t
default_dump
(const void* data,
char* dump,
- size_t max_dump_len)
+ const size_t max_dump_len)
{
- #ifdef NDEBUG
+ #ifndef TRACK_DEFAULT_ALLOC
(void)data;
if(dump && max_dump_len)
dump[0] = '\0';
@@ -372,7 +374,7 @@ static size_t
proxy_dump
(const void* data,
char* dump,
- size_t max_dump_len)
+ const size_t max_dump_len)
{
const struct proxy_data* proxy_data = NULL;
struct mem_node* node = NULL;
diff --git a/src/mem_allocator.h b/src/mem_allocator.h
@@ -45,7 +45,7 @@ struct mem_allocator {
size_t (*dump) /* Return the real dump len (without the null char) */
(const void* data,
char* dump,
- size_t max_dump_len); /* Include the null char */
+ const size_t max_dump_len); /* Include the null char */
void* data;
};