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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-04-04 04:50:41 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-04-04 04:50:41 +0400
commit79e2cd8fdfd52c2a6a377c30e95446eaf5db28d2 (patch)
tree98df5a5f4407cdef855809e8a0bf4e12d7c364a6 /source/blender/editors/transform/transform.c
parent4c36a26af5d1093badc88401bfebf8454fdf0f34 (diff)
parent3bb72e33df8a050c1b4dec3c29e3bfa87268869b (diff)
Merged changes in the trunk up to revision 45383.
Diffstat (limited to 'source/blender/editors/transform/transform.c')
-rw-r--r--source/blender/editors/transform/transform.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index c773b91a2bb..739ccc48f14 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");
@@ -4760,12 +4768,14 @@ void projectSVData(TransInfo *t, int final)
}
}
- /*make sure face-attributes are correct (e.g. MTexPoly)*/
+ /* make sure face-attributes are correct (e.g. MTexPoly) */
BM_elem_attrs_copy(em->bm, em->bm, copyf2, f);
- /*restore selection and hidden flags*/
+ /* restore selection and hidden flags */
BM_elem_select_set(em->bm, f, sel);
- BM_elem_hide_set(em->bm, f, hide);
+ if (!hide) { /* this check is a workaround for bug, see note - [#30735], without this edge can be hidden and selected */
+ BM_elem_hide_set(em->bm, f, hide);
+ }
}
}