Fix T51137: Edge Rip Hangs

This commit is contained in:
Campbell Barton 2017-04-07 11:43:50 +10:00
parent d426c335c5
commit a0799ce336
Notes: blender-bot 2023-02-14 07:06:03 +01:00
Referenced by issue #51137, Blender freezes on Edge Split / Rip
1 changed files with 9 additions and 4 deletions

View File

@ -2403,15 +2403,20 @@ static void bmesh_kernel_vert_separate__cleanup(BMesh *bm, LinkNode *edges_separ
do {
LinkNode *n_orig = edges_separate->link;
do {
BMEdge *e_orig = n_orig->link;
LinkNode *n_prev = n_orig;
LinkNode *n_step = n_orig->next;
BMEdge *e_orig = n_orig->link;
do {
BMEdge *e = n_step->link;
BLI_assert(e != e_orig);
if ((e->v1 == e_orig->v1) && (e->v2 == e_orig->v2)) {
BM_edge_splice(bm, e_orig, e);
if ((e->v1 == e_orig->v1) && (e->v2 == e_orig->v2) &&
BM_edge_splice(bm, e_orig, e))
{
/* don't visit again */
n_prev->next = n_step->next;
}
} while ((n_step = n_step->next));
} while ((n_prev = n_step),
(n_step = n_step->next));
} while ((n_orig = n_orig->next) && n_orig->next);
} while ((edges_separate = edges_separate->next));