diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-08-04 07:00:04 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-08-04 07:00:04 +0400 |
commit | bd89bd9e1c49369d9d08bf262602a7520cec7123 (patch) | |
tree | f0d3fe425cc057df4c0db2efe5571970060deb31 | |
parent | 5881fe5d679b38eb40b59c1af3bc3db88a53f35d (diff) |
avoid using MEM_reallocN_id directly, add utility macro for freeing.
-rw-r--r-- | intern/guardedalloc/MEM_guardedalloc.h | 22 | ||||
-rw-r--r-- | intern/guardedalloc/intern/mallocn.c | 11 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/fmodifier.c | 10 | ||||
-rw-r--r-- | source/blender/blenlib/intern/buffer.c | 9 |
4 files changed, 17 insertions, 35 deletions
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index 764340beb71..d46d7ad67bc 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -102,25 +102,12 @@ extern "C" { #endif ; - void *MEM_reallocN_id(void *vmemh, size_t len, const char *str) -#if MEM_GNU_ATTRIBUTES - __attribute__((warn_unused_result)) - __attribute__((alloc_size(2))) -#endif - ; - void *MEM_recallocN_id(void *vmemh, size_t len, const char *str) -#if MEM_GNU_ATTRIBUTES - __attribute__((warn_unused_result)) - __attribute__((alloc_size(2))) -#endif - ; - /** * Reallocates a block of memory, and returns pointer to the newly * allocated block, the old one is freed. this is not as optimized * as a system realloc but just makes a new allocation and copies * over from existing memory. */ - void *MEM_reallocN(void *vmemh, size_t len) + void *MEM_reallocN_id(void *vmemh, size_t len, const char *str) #if MEM_GNU_ATTRIBUTES __attribute__((warn_unused_result)) __attribute__((alloc_size(2))) @@ -130,13 +117,16 @@ extern "C" { /** * A variant of realloc which zeros new bytes */ - void *MEM_recallocN(void *vmemh, size_t len) + void *MEM_recallocN_id(void *vmemh, size_t len, const char *str) #if MEM_GNU_ATTRIBUTES __attribute__((warn_unused_result)) __attribute__((alloc_size(2))) #endif ; +#define MEM_reallocN(vmemh, len) MEM_reallocN_id(vmemh, len, __func__) +#define MEM_recallocN(vmemh, len) MEM_recallocN_id(vmemh, len, __func__) + /** * Allocate a block of memory of size len, with tag name str. The * memory is cleared. The name must be static, because only a @@ -223,6 +213,8 @@ extern "C" { #endif ; +#define MEM_SAFE_FREE(v) if (v) { MEM_freeN(v); v = NULL; } (void)0 + #ifndef NDEBUG const char *MEM_name_ptr(void *vmemh); #endif diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 3a37b03ece4..08ac2ce6eff 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -434,17 +434,6 @@ void *MEM_recallocN_id(void *vmemh, size_t len, const char *str) return newp; } - -void *MEM_reallocN(void *vmemh, size_t len) -{ - return MEM_reallocN_id(vmemh, len, __func__); -} -void *MEM_recallocN(void *vmemh, size_t len) -{ - return MEM_recallocN_id(vmemh, len, __func__); -} - - #ifdef DEBUG_BACKTRACE # if defined(__linux__) || defined(__APPLE__) static void make_memhead_backtrace(MemHead *memh) diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index e0b4f94f0b7..f24edfea136 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -144,9 +144,8 @@ static void fcm_generator_verify(FModifier *fcm) const int arraysize_new = data->poly_order + 1; /* arraysize needs to be order+1, so resize if not */ if (data->arraysize != arraysize_new) { - data->coefficients = MEM_recallocN_id(data->coefficients, - sizeof(float) * arraysize_new, - "FMod_Generator_Coefs"); + data->coefficients = MEM_recallocN(data->coefficients, + sizeof(float) * arraysize_new); data->arraysize = arraysize_new; } break; @@ -156,9 +155,8 @@ static void fcm_generator_verify(FModifier *fcm) const int arraysize_new = data->poly_order * 2; /* arraysize needs to be (2 * order), so resize if not */ if (data->arraysize != arraysize_new) { - data->coefficients = MEM_recallocN_id(data->coefficients, - sizeof(float) * arraysize_new, - "FMod_Generator_Coefs"); + data->coefficients = MEM_recallocN(data->coefficients, + sizeof(float) * arraysize_new); data->arraysize = arraysize_new; } break; diff --git a/source/blender/blenlib/intern/buffer.c b/source/blender/blenlib/intern/buffer.c index aac3a3bc3f3..36fb04a7bb7 100644 --- a/source/blender/blenlib/intern/buffer.c +++ b/source/blender/blenlib/intern/buffer.c @@ -34,9 +34,12 @@ static void *buffer_alloc(BLI_Buffer *buffer, int len) static void *buffer_realloc(BLI_Buffer *buffer, int len) { - return ((buffer->flag & BLI_BUFFER_USE_CALLOC) ? - MEM_recallocN : MEM_reallocN) - (buffer->data, (buffer->elem_size * len)); + if (buffer->flag & BLI_BUFFER_USE_CALLOC) { + return MEM_recallocN(buffer->data, buffer->elem_size * len); + } + else { + return MEM_reallocN(buffer->data, buffer->elem_size * len); + } } void BLI_buffer_resize(BLI_Buffer *buffer, int new_count) |