Index: src/pathops/SkOpCoincidence.cpp |
diff --git a/src/pathops/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp |
index 58ff7f3ab9b7552408b00192306378aadf40826b..46d06e9e0b3d5ef831dbbb9b1fdc9ee0a02bac18 100755 |
--- a/src/pathops/SkOpCoincidence.cpp |
+++ b/src/pathops/SkOpCoincidence.cpp |
@@ -568,6 +568,16 @@ void SkOpCoincidence::fixAligned() { |
coin->fOppPtTEnd = coin->fOppPtTEnd->doppelganger(); |
} |
} while ((coin = coin->fNext)); |
+ coin = fHead; |
+ SkCoincidentSpans** priorPtr = &fHead; |
+ do { |
+ if (coin->fCoinPtTStart->collapsed(coin->fCoinPtTEnd) |
+ || coin->fOppPtTStart->collapsed(coin->fOppPtTEnd)) { |
+ *priorPtr = coin->fNext; |
+ continue; |
+ } |
+ priorPtr = &coin->fNext; |
+ } while ((coin = coin->fNext)); |
} |
void SkOpCoincidence::fixUp(SkOpPtT* deleted, SkOpPtT* kept) { |