Index: src/pathops/SkAddIntersections.cpp |
diff --git a/src/pathops/SkAddIntersections.cpp b/src/pathops/SkAddIntersections.cpp |
index 07666e796d107351c1af8398fe504ac97ed1e4f2..1ca56b8f235ed6d9268f93c8d1edaa45b59c99b3 100644 |
--- a/src/pathops/SkAddIntersections.cpp |
+++ b/src/pathops/SkAddIntersections.cpp |
@@ -254,8 +254,7 @@ static void debugShowCubicIntersection(int , const SkIntersectionHelper& , |
} |
#endif |
-bool AddIntersectTs(SkOpContour* test, SkOpContour* next, SkOpCoincidence* coincidence, |
- SkChunkAlloc* allocator) { |
+bool AddIntersectTs(SkOpContour* test, SkOpContour* next, SkOpCoincidence* coincidence) { |
if (test != next) { |
if (AlmostLessUlps(test->bounds().fBottom, next->bounds().fTop)) { |
return false; |
@@ -506,12 +505,14 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next, SkOpCoincidence* coinc |
SkASSERT(ts[0][pt] >= 0 && ts[0][pt] <= 1); |
SkASSERT(ts[1][pt] >= 0 && ts[1][pt] <= 1); |
wt.segment()->debugValidate(); |
- SkOpPtT* testTAt = wt.segment()->addT(ts[swap][pt], SkOpSegment::kAllowAlias, |
- allocator); |
+ SkOpPtT* testTAt = wt.segment()->addT(ts[swap][pt], SkOpSegment::kAllowAliasMatch, |
+ nullptr); |
wn.segment()->debugValidate(); |
- SkOpPtT* nextTAt = wn.segment()->addT(ts[!swap][pt], SkOpSegment::kAllowAlias, |
- allocator); |
- testTAt->addOpp(nextTAt); |
+ SkOpPtT* nextTAt = wn.segment()->addT(ts[!swap][pt], SkOpSegment::kAllowAliasMatch, |
+ nullptr); |
+ if (testTAt->addOpp(nextTAt)) { |
+ testTAt->span()->checkForCollapsedCoincidence(); |
+ } |
if (testTAt->fPt != nextTAt->fPt) { |
testTAt->span()->unaligned(); |
nextTAt->span()->unaligned(); |
@@ -540,7 +541,7 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next, SkOpCoincidence* coinc |
SkTSwap(testTAt, nextTAt); |
} |
SkASSERT(coinPtT[0]->span()->t() < testTAt->span()->t()); |
- coincidence->add(coinPtT[0], testTAt, coinPtT[1], nextTAt, allocator); |
+ coincidence->add(coinPtT[0], testTAt, coinPtT[1], nextTAt); |
wt.segment()->debugValidate(); |
wn.segment()->debugValidate(); |
coinIndex = -1; |