diff options
-rw-r--r-- | intern/guardedalloc/MEM_guardedalloc.h | 13 | ||||
-rw-r--r-- | intern/guardedalloc/intern/mallocn.c | 19 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/fmodifier.c | 18 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_gpencil.c | 8 |
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; } } |