Fix T93563: Crash subdividing with overlapping tri and quad
The first loop was left out when finding the split edge boundary.
Error from f2138686d9
.
This commit is contained in:
parent
cbc6c3938d
commit
4946f0c5a2
Notes:
blender-bot
2023-02-14 10:18:56 +01:00
Referenced by issue #93563, Subdividing with overlapping tri and quad crashes Blender Referenced by issue #77348, Blender LTS: Maintenance Task 2.83
|
@ -1187,12 +1187,14 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
|
|||
vlen = BLI_array_len(loops);
|
||||
|
||||
/* find the boundary of one of the split edges */
|
||||
for (a = 1; a < vlen; a++) {
|
||||
if (!BMO_vert_flag_test(bm, loops[a - 1]->v, ELE_INNER) &&
|
||||
for (a = 0; a < vlen; a++) {
|
||||
if (!BMO_vert_flag_test(bm, loops[a ? (a - 1) : (vlen - 1)]->v, ELE_INNER) &&
|
||||
BMO_vert_flag_test(bm, loops[a]->v, ELE_INNER)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* Failure to break means there is an internal error. */
|
||||
BLI_assert(a < vlen);
|
||||
|
||||
if (BMO_vert_flag_test(bm, loops[(a + numcuts + 1) % vlen]->v, ELE_INNER)) {
|
||||
b = (a + numcuts + 1) % vlen;
|
||||
|
|
Loading…
Reference in New Issue