add versions of MEM_reallocN, MEM_recallocN which take a string arg so new allocs...
authorCampbell Barton <ideasman42@gmail.com>
Sat, 3 Aug 2013 17:53:41 +0000 (17:53 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 3 Aug 2013 17:53:41 +0000 (17:53 +0000)
intern/guardedalloc/MEM_guardedalloc.h
intern/guardedalloc/intern/mallocn.c
source/blender/blenkernel/intern/fmodifier.c
source/blender/makesrna/intern/rna_gpencil.c

index d49dc4b4dd90bd86edeea147aa9377b3227839f0..764340beb71f668598c7f682a449b0b313aaf4d7 100644 (file)
@@ -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
index 4a72089f8f7aae20d5c3c22b644bb1648178458f..3a37b03ece49c1a9d5bdceb5808e46b1cca0aaad 100644 (file)
@@ -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)
index 915c75a0e7f003e2fdfaf07f09ea53f9279dc51f..e0b4f94f0b74fb0b46688fc8e4288021f6b9c7f1 100644 (file)
@@ -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;
index efe6c08cafe4553cb6e4c60fbb45178e4f8f7e08..439bc51896fe2e87d87fbe725ac951bd6293c912 100644 (file)
@@ -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;
        }
 }