Index: src/pathops/SkPathOpsSimplify.cpp |
=================================================================== |
--- src/pathops/SkPathOpsSimplify.cpp (revision 9040) |
+++ src/pathops/SkPathOpsSimplify.cpp (working copy) |
@@ -32,11 +32,15 @@ |
do { |
if (current->activeWinding(index, endIndex)) { |
do { |
+ if (!unsortable && current->done()) { |
#if DEBUG_ACTIVE_SPANS |
- if (!unsortable && current->done()) { |
DebugShowActiveSpans(contourList); |
+ #endif |
+ if (simple->isEmpty()) { |
+ simple->init(); |
+ break; |
+ } |
} |
- #endif |
SkASSERT(unsortable || !current->done()); |
int nextStart = index; |
int nextEnd = endIndex; |
@@ -63,7 +67,7 @@ |
} while (!simple->isClosed() && (!unsortable |
|| !current->done(SkMin32(index, endIndex)))); |
if (current->activeWinding(index, endIndex) && !simple->isClosed()) { |
- SkASSERT(unsortable); |
+ SkASSERT(unsortable || simple->isEmpty()); |
int min = SkMin32(index, endIndex); |
if (!current->done(min)) { |
current->addCurveTo(index, endIndex, simple, true); |
@@ -182,7 +186,7 @@ |
CoincidenceCheck(&contourList, 0); |
FixOtherTIndex(&contourList); |
SortSegments(&contourList); |
-#if DEBUG_ACTIVE_SPANS |
+#if DEBUG_ACTIVE_SPANS || DEBUG_ACTIVE_SPANS_FIRST_ONLY |
DebugShowActiveSpans(contourList); |
#endif |
// construct closed contours |