From 182b499cd75c971f85cdf52c1827b3c220cc9011 Mon Sep 17 00:00:00 2001 From: caryclark Date: Thu, 14 May 2015 05:45:54 -0700 Subject: look for deleted pts when detecting line/curve coincident edges TBR=reed@google.com BUG=skia:3651 Review URL: https://codereview.chromium.org/1129863007 --- src/pathops/SkOpCoincidence.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/pathops/SkOpCoincidence.cpp') diff --git a/src/pathops/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp index ed195641bf..eb0ccc1737 100755 --- a/src/pathops/SkOpCoincidence.cpp +++ b/src/pathops/SkOpCoincidence.cpp @@ -195,12 +195,18 @@ bool SkOpCoincidence::apply() { return true; } do { - SkOpSpanBase* end = coin->fCoinPtTEnd->span(); SkOpSpan* start = coin->fCoinPtTStart->span()->upCast(); + if (start->deleted()) { + continue; + } + SkOpSpanBase* end = coin->fCoinPtTEnd->span(); SkASSERT(start == start->starter(end)); bool flipped = coin->fFlipped; - SkOpSpanBase* oEnd = (flipped ? coin->fOppPtTStart : coin->fOppPtTEnd)->span(); SkOpSpan* oStart = (flipped ? coin->fOppPtTEnd : coin->fOppPtTStart)->span()->upCast(); + if (oStart->deleted()) { + continue; + } + SkOpSpanBase* oEnd = (flipped ? coin->fOppPtTStart : coin->fOppPtTEnd)->span(); SkASSERT(oStart == oStart->starter(oEnd)); SkOpSegment* segment = start->segment(); SkOpSegment* oSegment = oStart->segment(); -- cgit v1.2.3