avoid using MEM_reallocN_id directly, add utility macro for freeing.

This commit is contained in:
Campbell Barton
2013-08-04 03:00:04 +00:00
parent 5881fe5d67
commit bd89bd9e1c
4 changed files with 17 additions and 35 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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;

View File

@@ -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)