Index: src/pathops/SkOpSegment.cpp |
diff --git a/src/pathops/SkOpSegment.cpp b/src/pathops/SkOpSegment.cpp |
index 2246f36ff217b4aa33375c8537d166d971347c07..6012d832bf349cb63d607bcf22a5ccc719a5fc10 100644 |
--- a/src/pathops/SkOpSegment.cpp |
+++ b/src/pathops/SkOpSegment.cpp |
@@ -855,7 +855,7 @@ bool SkOpSegment::markAndChaseWinding(SkOpSpanBase* start, SkOpSpanBase* end, in |
SkOpSegment* other = this; |
while ((other = other->nextChase(&start, &step, &spanStart, &last))) { |
if (spanStart->windSum() != SK_MinS32) { |
- SkASSERT(spanStart->windSum() == winding); |
+// SkASSERT(spanStart->windSum() == winding); // FIXME: is this assert too aggressive? |
SkASSERT(!last); |
break; |
} |
@@ -1459,7 +1459,7 @@ void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sum |
SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(*oppSumWinding) <= DEBUG_LIMIT_WIND_SUM); |
} |
-void SkOpSegment::sortAngles() { |
+bool SkOpSegment::sortAngles() { |
SkOpSpanBase* span = &this->fHead; |
do { |
SkOpAngle* fromAngle = span->fromAngle(); |
@@ -1477,7 +1477,7 @@ void SkOpSegment::sortAngles() { |
span->debugID()); |
wroteAfterHeader = true; |
#endif |
- fromAngle->insert(toAngle); |
+ FAIL_IF(!fromAngle->insert(toAngle)); |
} else if (!fromAngle) { |
baseAngle = toAngle; |
} |
@@ -1527,6 +1527,7 @@ void SkOpSegment::sortAngles() { |
SkASSERT(!baseAngle || baseAngle->loopCount() > 1); |
#endif |
} while (!span->final() && (span = span->upCast()->next())); |
+ return true; |
} |
bool SkOpSegment::subDivide(const SkOpSpanBase* start, const SkOpSpanBase* end, |