[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50948] trunk/blender/source/blender/ editors/transform: - transform' s createTransCurveVerts was using both CTX_data_edit_object(C) and t-> obedit, now only use t->obedit.

Campbell Barton ideasman42 at gmail.com
Fri Sep 28 16:51:33 CEST 2012


Revision: 50948
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50948
Author:   campbellbarton
Date:     2012-09-28 14:51:33 +0000 (Fri, 28 Sep 2012)
Log Message:
-----------
- transform's createTransCurveVerts was using both CTX_data_edit_object(C) and t->obedit, now only use t->obedit.
- freeing bez-triple handle data was being done in a loop for many types which don't support bezier handle data.

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-28 14:31:07 UTC (rev 50947)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2012-09-28 14:51:33 UTC (rev 50948)
@@ -1334,10 +1334,9 @@
 	return hdata;
 }
 
-static void createTransCurveVerts(bContext *C, TransInfo *t)
+static void createTransCurveVerts(TransInfo *t)
 {
-	Object *obedit = CTX_data_edit_object(C);
-	Curve *cu = obedit->data;
+	Curve *cu = t->obedit->data;
 	TransData *td = NULL;
 	Nurb *nu;
 	BezTriple *bezt;
@@ -1935,9 +1934,9 @@
 	}
 }
 
-static void createTransEditVerts(bContext *C, TransInfo *t)
+static void createTransEditVerts(TransInfo *t)
 {
-	ToolSettings *ts = CTX_data_tool_settings(C);
+	ToolSettings *ts = t->scene->toolsettings;
 	TransData *tob = NULL;
 	TransDataExtension *tx = NULL;
 	BMEditMesh *em = BMEdit_FromObject(t->obedit);
@@ -6425,10 +6424,10 @@
 	else if (t->obedit) {
 		t->ext = NULL;
 		if (t->obedit->type == OB_MESH) {
-			createTransEditVerts(C, t);
+			createTransEditVerts(t);
 		}
 		else if (ELEM(t->obedit->type, OB_CURVE, OB_SURF)) {
-			createTransCurveVerts(C, t);
+			createTransCurveVerts(t);
 		}
 		else if (t->obedit->type == OB_LATTICE) {
 			createTransLatticeVerts(t);

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2012-09-28 14:31:07 UTC (rev 50947)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2012-09-28 14:51:33 UTC (rev 50948)
@@ -1302,12 +1302,17 @@
 
 	/* postTrans can be called when nothing is selected, so data is NULL already */
 	if (t->data) {
-		int a;
 		
 		/* free data malloced per trans-data */
-		for (a = 0, td = t->data; a < t->total; a++, td++) {
-			if (td->flag & TD_BEZTRIPLE) 
-				MEM_freeN(td->hdata);
+		if ((t->obedit && ELEM(t->obedit->type, OB_CURVE, OB_SURF)) ||
+		    (t->spacetype == SPACE_IPO))
+		{
+			int a;
+			for (a = 0, td = t->data; a < t->total; a++, td++) {
+				if (td->flag & TD_BEZTRIPLE) {
+					MEM_freeN(td->hdata);
+				}
+			}
 		}
 		MEM_freeN(t->data);
 	}




More information about the Bf-blender-cvs mailing list