rsys

Basic data structures and low-level features
git clone git://git.meso-star.fr/rsys.git
Log | Files | Refs | README | LICENSE

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:
Msrc/mem_allocator.c | 28+++++++++++++++-------------
Msrc/mem_allocator.h | 2+-
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; };