Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-08-04 07:00:04 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-08-04 07:00:04 +0400
commitbd89bd9e1c49369d9d08bf262602a7520cec7123 (patch)
treef0d3fe425cc057df4c0db2efe5571970060deb31
parent5881fe5d679b38eb40b59c1af3bc3db88a53f35d (diff)
avoid using MEM_reallocN_id directly, add utility macro for freeing.
-rw-r--r--intern/guardedalloc/MEM_guardedalloc.h22
-rw-r--r--intern/guardedalloc/intern/mallocn.c11
-rw-r--r--source/blender/blenkernel/intern/fmodifier.c10
-rw-r--r--source/blender/blenlib/intern/buffer.c9
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)