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:
@@ -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) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user