Revision: 45356
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45356
Author:   campbellbarton
Date:     2012-04-03 02:52:34 +0000 (Tue, 03 Apr 2012)
Log Message:
-----------
patch [#30780] Transform operator leak in aborted edge slide mode
from Francisco De La Cruz (xercesblue)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform.c

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c  2012-04-03 
02:46:44 UTC (rev 45355)
+++ trunk/blender/source/blender/editors/transform/transform.c  2012-04-03 
02:52:34 UTC (rev 45356)
@@ -4402,7 +4402,7 @@
        int numsel, i, j;
 
        if (!v3d) {
-               /*ok, let's try to survive this*/
+               /* ok, let's try to survive this */
                unit_m4(projectMat);
        }
        else {
@@ -4428,15 +4428,20 @@
                        }
 
                        if (numsel == 0 || numsel > 2) {
-                               return 0; //invalid edge selection
+                               MEM_freeN(sld);
+                               BMBVH_FreeBVH(btree);
+                               return 0; /* invalid edge selection */
                        }
                }
        }
 
        BM_ITER(e, &iter, em->bm, BM_EDGES_OF_MESH, NULL) {
                if (BM_elem_flag_test(e, BM_ELEM_SELECT)) {
-                       if (BM_edge_face_count(e) != 2)
-                               return 0; //can only handle exactly 2 faces 
around each edge
+                       if (BM_edge_face_count(e) != 2) {
+                               MEM_freeN(sld);
+                               BMBVH_FreeBVH(btree);
+                               return 0; /* can only handle exactly 2 faces 
around each edge */
+                       }
                }
        }
 
@@ -4452,8 +4457,11 @@
                }
        }
 
-       if (!j)
+       if (!j) {
+               MEM_freeN(sld);
+               BMBVH_FreeBVH(btree);
                return 0;
+       }
 
        tempsv = MEM_callocN(sizeof(TransDataSlideVert)*j, "tempsv");
 

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

Reply via email to