[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44889] trunk/blender/source/blender/ editors/transform: fix [#30542] Shear Vertical Seg Faults Blender

Campbell Barton ideasman42 at gmail.com
Thu Mar 15 01:57:21 CET 2012


Revision: 44889
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44889
Author:   campbellbarton
Date:     2012-03-15 00:57:14 +0000 (Thu, 15 Mar 2012)
Log Message:
-----------
fix [#30542] Shear Vertical Seg Faults Blender
honor the T_FREE_CUSTOMDATA flag.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform.c
    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.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2012-03-15 00:26:20 UTC (rev 44888)
+++ trunk/blender/source/blender/editors/transform/transform.c	2012-03-15 00:57:14 UTC (rev 44889)
@@ -2454,7 +2454,7 @@
 			initMouseInputMode(t, &t->mouse, INPUT_HORIZONTAL_ABSOLUTE);
 			t->customData = NULL;
 		}
-		
+
 		status = 1;
 	}
 	

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2012-03-15 00:26:20 UTC (rev 44888)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2012-03-15 00:57:14 UTC (rev 44889)
@@ -4204,9 +4204,9 @@
 		}
 	}
 
-	if (t->customData) {
+	if ((t->customData != NULL) && (t->flag & T_FREE_CUSTOMDATA)) {
 		MEM_freeN(t->customData);
-		t->customData= NULL;
+		t->customData = NULL;
 	}
 	if (t->data) {
 		MEM_freeN(t->data); // XXX postTrans usually does this
@@ -4281,7 +4281,8 @@
 
 	td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransSeq TransData");
 	td2d = t->data2d = MEM_callocN(t->total*sizeof(TransData2D), "TransSeq TransData2D");
-	tdsq = t->customData= MEM_callocN(t->total*sizeof(TransDataSeq), "TransSeq TransDataSeq");
+	tdsq = t->customData = MEM_callocN(t->total*sizeof(TransDataSeq), "TransSeq TransDataSeq");
+	t->flag |= T_FREE_CUSTOMDATA;
 
 
 

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2012-03-15 00:26:20 UTC (rev 44888)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2012-03-15 00:57:14 UTC (rev 44889)
@@ -1245,7 +1245,7 @@
 		/* Can take over freeing t->data and data2d etc... */
 		t->customFree(t);
 	}
-	else if (t->customData) {
+	else if ((t->customData != NULL) && (t->flag & T_FREE_CUSTOMDATA)) {
 		MEM_freeN(t->customData);
 	}
 




More information about the Bf-blender-cvs mailing list