Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-04-03 06:52:34 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-04-03 06:52:34 +0400
commitd98c1770f9be7a384676076a39df3426ec01ebb4 (patch)
tree6c30f12fe1de59b8d278aba7f8f00fa17966b5e9 /source/blender/editors/transform
parent817a407a62df5b79bf2a12d87ccbd0bc7e12d56c (diff)
patch [#30780] Transform operator leak in aborted edge slide mode
from Francisco De La Cruz (xercesblue)
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 71bca7bfce8..f2e2d5dd281 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -4402,7 +4402,7 @@ static int createSlideVerts(TransInfo *t)
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 @@ static int createSlideVerts(TransInfo *t)
}
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 @@ static int createSlideVerts(TransInfo *t)
}
}
- if (!j)
+ if (!j) {
+ MEM_freeN(sld);
+ BMBVH_FreeBVH(btree);
return 0;
+ }
tempsv = MEM_callocN(sizeof(TransDataSlideVert)*j, "tempsv");