Fix T40297: Crash while ripping an edge when autosmooth is activated.

Turned out there was still quite a few cases were indices were set dirty,
but elem_index_dirty was not tagged accordingly (mostly for BM_LOOP,
but a few others as well). So probably this crash was not the only one
hidden here.

Hopefully all possible cases were catched this time!
This commit is contained in:
2014-05-21 22:35:08 +02:00
parent 8d297394ba
commit a217db0d63
14 changed files with 38 additions and 25 deletions

View File

@@ -334,7 +334,7 @@ void BM_mesh_wireframe(
}
BM_ITER_ELEM (l, &itersub, f_src, BM_LOOPS_OF_FACE) {
BM_elem_index_set(l, verts_loop_tot); /* set_loop */
BM_elem_index_set(l, verts_loop_tot); /* set_dirty */ /* Because some faces might be skipped! */
BM_loop_calc_face_tangent(l, tvec);
@@ -407,6 +407,7 @@ void BM_mesh_wireframe(
verts_loop_tot++;
}
}
bm->elem_index_dirty |= BM_LOOP;
BM_ITER_MESH (f_src, &iter, bm, BM_FACES_OF_MESH) {