fix [#37145] "Triangulate Face" crash in specific scene

it was asserting if the last edge faces were already all set
This commit is contained in:
Dalai Felinto 2013-10-19 21:20:50 +00:00
parent 0410eff306
commit 8f22c120f5
1 changed files with 14 additions and 15 deletions

View File

@ -974,26 +974,25 @@ void BM_face_triangulate(BMesh *bm, BMFace *f,
BLI_assert(ok);
if (i == edge_array_len - 1) {
if (FACE_USED_TEST(f_a) == false) {
if (FACE_USED_TEST(f_a) == false) {
FACE_USED_SET(f_a);
if (nf_i < edge_array_len) {
r_faces_new[nf_i++] = f_a;
} else {
f_new = f_a;
}
else if (FACE_USED_TEST(f_b) == false) {
f_new = f_b;
}
else {
BLI_assert(false);
break;
}
}
else {
if (FACE_USED_TEST(f_a) == false) {
FACE_USED_SET(f_a);
r_faces_new[nf_i++] = f_a;
}
if (FACE_USED_TEST(f_b) == false) {
FACE_USED_SET(f_b);
if (FACE_USED_TEST(f_b) == false) {
FACE_USED_SET(f_b);
if (nf_i < edge_array_len) {
r_faces_new[nf_i++] = f_b;
} else {
f_new = f_b;
break;
}
}
}