[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40909] branches/bmesh/blender/source/ blender/editors/transform/transform_conversions.c: Fix a memory leak when attempting edge slide with no edges selected

Andrew Wiggin ender79bl at gmail.com
Mon Oct 10 16:35:34 CEST 2011


Revision: 40909
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40909
Author:   ender79
Date:     2011-10-10 14:35:33 +0000 (Mon, 10 Oct 2011)
Log Message:
-----------
Fix a memory leak when attempting edge slide with no edges selected

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c

Modified: branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c	2011-10-10 14:32:08 UTC (rev 40908)
+++ branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c	2011-10-10 14:35:33 UTC (rev 40909)
@@ -2089,10 +2089,12 @@
 	// transform now requires awareness for select mode, so we tag the f1 flags in verts
 	if(selectmode & SCE_SELECT_VERTEX) {
 		BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL) {
-			if(!BM_TestHFlag(eve, BM_HIDDEN) && BM_TestHFlag(eve, BM_SELECT))
+			if (BM_Selected(bm, eve)) {
 				BM_SetIndex(eve, SELECT);
-			else
+			}
+			else {
 				BM_SetIndex(eve, 0);
+			}
 		}
 	}
 	else if(selectmode & SCE_SELECT_EDGE) {
@@ -2103,8 +2105,10 @@
 
 		eed = BMIter_New(&iter, bm, BM_EDGES_OF_MESH, NULL);
 		for( ; eed; eed=BMIter_Step(&iter)) {
-			if(!BM_TestHFlag(eed, BM_HIDDEN) && BM_TestHFlag(eed, BM_SELECT))
-				BM_SetIndex(eed->v1, SELECT), BM_SetIndex(eed->v2, SELECT);
+			if (BM_Selected(bm, eed)) {
+				BM_SetIndex(eed->v1, SELECT);
+				BM_SetIndex(eed->v2, SELECT);
+			}
 		}
 	}
 	else {
@@ -2114,7 +2118,7 @@
 
 		efa = BMIter_New(&iter, bm, BM_FACES_OF_MESH, NULL);
 		for( ; efa; efa=BMIter_Step(&iter)) {
-			if(!BM_TestHFlag(efa, BM_HIDDEN) && BM_TestHFlag(efa, BM_SELECT)) {
+			if (BM_Selected(bm, efa)) {
 				BMIter liter;
 				BMLoop *l;
 
@@ -2133,17 +2137,17 @@
 	for(a=0; eve; eve=BMIter_Step(&iter), a++) {
 		BLI_array_growone(selstate);
 
-		if(!BM_TestHFlag(eve, BM_HIDDEN)) {	
-			if(BM_GetIndex(eve)) {
-				selstate[a] = 1;
-				countsel++;
-			}
-			if(propmode) count++;
+		if(BM_GetIndex(eve)) {
+			selstate[a] = 1;
+			countsel++;
 		}
+		if(propmode) count++;
 	}
 
-	 /* note: in prop mode we need at least 1 selected */
-	if (countsel==0) return;
+	/* note: in prop mode we need at least 1 selected */
+	if (countsel == 0) {
+		goto cleanup;
+	}
 
 	/* check active */
 	if (em->bm->selected.last) {
@@ -2284,7 +2288,8 @@
 			}
 		}
 	}
-	
+
+cleanup:
 	/* crazy space free */
 	if(quats)
 		MEM_freeN(quats);




More information about the Bf-blender-cvs mailing list