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:
authorHoward Trickey <howard.trickey@gmail.com>2013-07-04 00:52:31 +0400
committerHoward Trickey <howard.trickey@gmail.com>2013-07-04 00:52:31 +0400
commit2e7776b95abb60a91958938bb2840d45ad77bfbb (patch)
tree89fbbed21f7169ad4397d3b92801070d2f4324ad /source/blender/bmesh
parentbbfc3c6cee013f8a4458adcb120a462f641926e2 (diff)
Fix bevel crash bug 35990. Sometimes no face to interpolate from.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r--source/blender/bmesh/tools/bmesh_bevel.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c
index 85fbdb383fd..d7073ef61be 100644
--- a/source/blender/bmesh/tools/bmesh_bevel.c
+++ b/source/blender/bmesh/tools/bmesh_bevel.c
@@ -268,8 +268,8 @@ static BMFace *bev_create_ngon(BMesh *bm, BMVert **vert_arr, const int totv,
}
f = BM_face_create(bm, vert_arr, ee, totv, 0);
}
- if ((facerep || face_arr) && f) {
- BM_elem_attrs_copy(bm, bm, facerep, f);
+ if ((facerep || (face_arr && face_arr[0])) && f) {
+ BM_elem_attrs_copy(bm, bm, facerep ? facerep : face_arr[0], f);
if (do_interp) {
i = 0;
BM_ITER_ELEM (l, &iter, f, BM_LOOPS_OF_FACE) {
@@ -281,7 +281,8 @@ static BMFace *bev_create_ngon(BMesh *bm, BMVert **vert_arr, const int totv,
else {
interp_f = facerep;
}
- BM_loop_interp_from_face(bm, l, interp_f, TRUE, TRUE);
+ if (interp_f)
+ BM_loop_interp_from_face(bm, l, interp_f, TRUE, TRUE);
i++;
}
}
@@ -404,7 +405,8 @@ static BMFace *bev_create_quad_straddle(BMesh *bm, BMVert *v1, BMVert *v2, BMVer
facerep = f1;
else
facerep = f2;
- BM_loop_interp_from_face(bm, l, facerep, TRUE, TRUE);
+ if (facerep)
+ BM_loop_interp_from_face(bm, l, facerep, TRUE, TRUE);
}
return f;
}