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:
-rw-r--r--intern/guardedalloc/MEM_guardedalloc.h13
-rw-r--r--intern/guardedalloc/intern/mallocn.c19
-rw-r--r--source/blender/blenkernel/intern/fmodifier.c18
-rw-r--r--source/blender/makesrna/intern/rna_gpencil.c8
4 files changed, 37 insertions, 21 deletions
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h
index d49dc4b4dd9..764340beb71 100644
--- a/intern/guardedalloc/MEM_guardedalloc.h
+++ b/intern/guardedalloc/MEM_guardedalloc.h
@@ -102,6 +102,19 @@ 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
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index 4a72089f8f7..3a37b03ece4 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -371,7 +371,7 @@ void *MEM_dupallocN(const void *vmemh)
return newp;
}
-void *MEM_reallocN(void *vmemh, size_t len)
+void *MEM_reallocN_id(void *vmemh, size_t len, const char *str)
{
void *newp = NULL;
@@ -394,13 +394,13 @@ void *MEM_reallocN(void *vmemh, size_t len)
MEM_freeN(vmemh);
}
else {
- newp = MEM_mallocN(len, __func__);
+ newp = MEM_mallocN(len, str);
}
return newp;
}
-void *MEM_recallocN(void *vmemh, size_t len)
+void *MEM_recallocN_id(void *vmemh, size_t len, const char *str)
{
void *newp = NULL;
@@ -428,12 +428,23 @@ void *MEM_recallocN(void *vmemh, size_t len)
MEM_freeN(vmemh);
}
else {
- newp = MEM_callocN(len, __func__);
+ newp = MEM_callocN(len, 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 915c75a0e7f..e0b4f94f0b7 100644
--- a/source/blender/blenkernel/intern/fmodifier.c
+++ b/source/blender/blenkernel/intern/fmodifier.c
@@ -144,12 +144,9 @@ 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) {
- if (data->coefficients) {
- data->coefficients = MEM_recallocN(data->coefficients, sizeof(float) * arraysize_new);
- }
- else {
- data->coefficients = MEM_callocN(sizeof(float) * arraysize_new, "FMod_Generator_Coefs");
- }
+ data->coefficients = MEM_recallocN_id(data->coefficients,
+ sizeof(float) * arraysize_new,
+ "FMod_Generator_Coefs");
data->arraysize = arraysize_new;
}
break;
@@ -159,12 +156,9 @@ 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) {
- if (data->coefficients) {
- data->coefficients = MEM_recallocN(data->coefficients, sizeof(float) * arraysize_new);
- }
- else {
- data->coefficients = MEM_callocN(sizeof(float) * arraysize_new, "FMod_Generator_Coefs");
- }
+ data->coefficients = MEM_recallocN_id(data->coefficients,
+ sizeof(float) * arraysize_new,
+ "FMod_Generator_Coefs");
data->arraysize = arraysize_new;
}
break;
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index efe6c08cafe..439bc51896f 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -118,11 +118,9 @@ static void rna_GPencilLayer_info_set(PointerRNA *ptr, const char *value)
static void rna_GPencil_stroke_point_add(bGPDstroke *stroke, int count)
{
if (count > 0) {
- if (stroke->points == NULL)
- stroke->points = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points");
- else
- stroke->points = MEM_recallocN(stroke->points, sizeof(bGPDspoint) * (stroke->totpoints + count));
-
+ stroke->points = MEM_recallocN_id(stroke->points,
+ sizeof(bGPDspoint) * (stroke->totpoints + count),
+ "gp_stroke_points");
stroke->totpoints += count;
}
}