Fix error in BM_face_exists_overlap_subset

Was re-using loop index, thanks to @bzztploink for spotting!
This commit is contained in:
Campbell Barton
2016-05-05 01:26:39 +10:00
parent 875df1e2b9
commit e30f0427a5

View File

@@ -2186,14 +2186,13 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
{ {
BMIter viter; BMIter viter;
BMFace *f; BMFace *f;
int i;
bool is_init = false; bool is_init = false;
bool is_overlap = false; bool is_overlap = false;
LinkNode *f_lnk = NULL; LinkNode *f_lnk = NULL;
#ifdef DEBUG #ifdef DEBUG
/* check flag isn't already set */ /* check flag isn't already set */
for (i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
BLI_assert(BM_ELEM_API_FLAG_TEST(varr[i], _FLAG_OVERLAP) == 0); BLI_assert(BM_ELEM_API_FLAG_TEST(varr[i], _FLAG_OVERLAP) == 0);
BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) { BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) {
BLI_assert(BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0); BLI_assert(BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0);
@@ -2201,7 +2200,7 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
} }
#endif #endif
for (i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) { BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) {
if ((f->len <= len) && (BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0)) { if ((f->len <= len) && (BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0)) {
/* check if all vers in this face are flagged*/ /* check if all vers in this face are flagged*/
@@ -2209,8 +2208,8 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
if (is_init == false) { if (is_init == false) {
is_init = true; is_init = true;
for (i = 0; i < len; i++) { for (int j = 0; j < len; j++) {
BM_ELEM_API_FLAG_ENABLE(varr[i], _FLAG_OVERLAP); BM_ELEM_API_FLAG_ENABLE(varr[j], _FLAG_OVERLAP);
} }
} }
@@ -2234,7 +2233,7 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
} }
if (is_init == true) { if (is_init == true) {
for (i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
BM_ELEM_API_FLAG_DISABLE(varr[i], _FLAG_OVERLAP); BM_ELEM_API_FLAG_DISABLE(varr[i], _FLAG_OVERLAP);
} }
} }