[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50841] trunk/blender/source/blender/ editors/transform: fix for memory leak grabbing masks and grease pencil in the dope sheet.
Campbell Barton
ideasman42 at gmail.com
Mon Sep 24 03:50:29 CEST 2012
Revision: 50841
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50841
Author: campbellbarton
Date: 2012-09-24 01:50:26 +0000 (Mon, 24 Sep 2012)
Log Message:
-----------
fix for memory leak grabbing masks and grease pencil in the dope sheet. (also NULL after freeing)
Modified Paths:
--------------
trunk/blender/source/blender/editors/transform/transform_conversions.c
trunk/blender/source/blender/editors/transform/transform_generics.c
Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c 2012-09-24 01:36:31 UTC (rev 50840)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c 2012-09-24 01:50:26 UTC (rev 50841)
@@ -3292,15 +3292,19 @@
if (ELEM(ac.datatype, ANIMCONT_GPENCIL, ANIMCONT_MASK)) {
if (t->mode == TFM_TIME_SLIDE) {
t->customData = MEM_callocN((sizeof(float) * 2) + (sizeof(tGPFtransdata) * count), "TimeSlide + tGPFtransdata");
+ t->flag |= T_FREE_CUSTOMDATA;
tfd = (tGPFtransdata *)((float *)(t->customData) + 2);
}
else {
t->customData = MEM_callocN(sizeof(tGPFtransdata) * count, "tGPFtransdata");
+ t->flag |= T_FREE_CUSTOMDATA;
tfd = (tGPFtransdata *)(t->customData);
}
}
- else if (t->mode == TFM_TIME_SLIDE)
+ else if (t->mode == TFM_TIME_SLIDE) {
t->customData = MEM_callocN(sizeof(float) * 2, "TimeSlide Min/Max");
+ t->flag |= T_FREE_CUSTOMDATA;
+ }
/* loop 2: build transdata array */
for (ale = anim_data.first; ale; ale = ale->next) {
@@ -5762,6 +5766,7 @@
MEM_freeN(tdt->smarkers);
MEM_freeN(tdt);
+ t->customData = NULL;
}
}
Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c 2012-09-24 01:36:31 UTC (rev 50840)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c 2012-09-24 01:50:26 UTC (rev 50841)
@@ -1293,9 +1293,11 @@
if (t->customFree) {
/* Can take over freeing t->data and data2d etc... */
t->customFree(t);
+ BLI_assert(t->customData == NULL);
}
else if ((t->customData != NULL) && (t->flag & T_FREE_CUSTOMDATA)) {
MEM_freeN(t->customData);
+ t->customData = NULL;
}
/* postTrans can be called when nothing is selected, so data is NULL already */
More information about the Bf-blender-cvs
mailing list