[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58887] trunk/blender: avoid using MEM_reallocN_id directly, add utility macro for freeing.
Campbell Barton
ideasman42 at gmail.com
Sun Aug 4 05:00:05 CEST 2013
Revision: 58887
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58887
Author: campbellbarton
Date: 2013-08-04 03:00:04 +0000 (Sun, 04 Aug 2013)
Log Message:
-----------
avoid using MEM_reallocN_id directly, add utility macro for freeing.
Modified Paths:
--------------
trunk/blender/intern/guardedalloc/MEM_guardedalloc.h
trunk/blender/intern/guardedalloc/intern/mallocn.c
trunk/blender/source/blender/blenkernel/intern/fmodifier.c
trunk/blender/source/blender/blenlib/intern/buffer.c
Modified: trunk/blender/intern/guardedalloc/MEM_guardedalloc.h
===================================================================
--- trunk/blender/intern/guardedalloc/MEM_guardedalloc.h 2013-08-04 00:01:41 UTC (rev 58886)
+++ trunk/blender/intern/guardedalloc/MEM_guardedalloc.h 2013-08-04 03:00:04 UTC (rev 58887)
@@ -102,25 +102,12 @@
#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 @@
/**
* 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 @@
#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
Modified: trunk/blender/intern/guardedalloc/intern/mallocn.c
===================================================================
--- trunk/blender/intern/guardedalloc/intern/mallocn.c 2013-08-04 00:01:41 UTC (rev 58886)
+++ trunk/blender/intern/guardedalloc/intern/mallocn.c 2013-08-04 03:00:04 UTC (rev 58887)
@@ -434,17 +434,6 @@
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)
Modified: trunk/blender/source/blender/blenkernel/intern/fmodifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/fmodifier.c 2013-08-04 00:01:41 UTC (rev 58886)
+++ trunk/blender/source/blender/blenkernel/intern/fmodifier.c 2013-08-04 03:00:04 UTC (rev 58887)
@@ -144,9 +144,8 @@
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 @@
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;
Modified: trunk/blender/source/blender/blenlib/intern/buffer.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/buffer.c 2013-08-04 00:01:41 UTC (rev 58886)
+++ trunk/blender/source/blender/blenlib/intern/buffer.c 2013-08-04 03:00:04 UTC (rev 58887)
@@ -34,9 +34,12 @@
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)
More information about the Bf-blender-cvs
mailing list