diff --git a/clipper/clipper.cpp b/clipper/clipper.cpp index 97032989..ab7cb46b 100644 --- a/clipper/clipper.cpp +++ b/clipper/clipper.cpp @@ -1640,8 +1640,13 @@ void Clipper::FixHoleLinkage(OutRec &outrec) outrec.FirstLeft->Pts)) return; OutRec* orfl = outrec.FirstLeft; - while (orfl && ((orfl->IsHole == outrec.IsHole) || !orfl->Pts)) + OutRec* first = orfl; + while (orfl && ((orfl->IsHole == outrec.IsHole) || !orfl->Pts)) { orfl = orfl->FirstLeft; + if (orfl == first) { + break; + } + } outrec.FirstLeft = orfl; } //------------------------------------------------------------------------------