add versions of MEM_reallocN, MEM_recallocN which take a string arg so new allocs have an ID, changing existing functions signatures would be too disruptive at the moment.
This commit is contained in:
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user