| Index: src/pathops/SkOpSegment.cpp
|
| diff --git a/src/pathops/SkOpSegment.cpp b/src/pathops/SkOpSegment.cpp
|
| index 747cd9d4973b0087e3e0730b2f9894ead6e96f6f..336ac116be7d161d50d5461081bc9566b8aa9552 100644
|
| --- a/src/pathops/SkOpSegment.cpp
|
| +++ b/src/pathops/SkOpSegment.cpp
|
| @@ -1293,7 +1293,8 @@ void SkOpSegment::addTCoincident(const SkPoint& startPt, const SkPoint& endPt, d
|
| double testT = test->fT;
|
| SkOpSpan* oTest = &other->fTs[oIndex];
|
| const SkPoint* oTestPt = &oTest->fPt;
|
| - SkASSERT(AlmostEqualUlps(*testPt, *oTestPt));
|
| + // paths with extreme data will fail this test and eject out of pathops altogether later on
|
| + // SkASSERT(AlmostEqualUlps(*testPt, *oTestPt));
|
| do {
|
| SkASSERT(test->fT < 1);
|
| SkASSERT(oTest->fT < 1);
|
| @@ -1476,6 +1477,9 @@ bool SkOpSegment::calcAngles() {
|
| const SkOpSpan* span = &fTs[0];
|
| if (firstSpan->fT == 0 || span->fTiny || span->fOtherT != 1 || span->fOther->multipleEnds()) {
|
| index = findStartSpan(0); // curve start intersects
|
| + if (fTs[index].fT == 0) {
|
| + return false;
|
| + }
|
| SkASSERT(index > 0);
|
| if (activePrior >= 0) {
|
| addStartSpan(index);
|
|
|