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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to