Index: src/pathops/SkOpBuilder.cpp |
diff --git a/src/pathops/SkOpBuilder.cpp b/src/pathops/SkOpBuilder.cpp |
index 39da2efbcee7a727b70b08b192de52112323b30f..5cc3fbd2ef285e33734b504da7b15ebb0fe7465b 100644 |
--- a/src/pathops/SkOpBuilder.cpp |
+++ b/src/pathops/SkOpBuilder.cpp |
@@ -55,13 +55,17 @@ void FixWinding(SkPath* path) { |
while ((topSpan = FindSortableTop(&contourHead))) { |
SkOpSegment* topSegment = topSpan->segment(); |
SkOpContour* topContour = topSegment->contour(); |
- bool active = topSegment->activeWinding(topSpan, topSpan->next()); |
SkASSERT(topContour->isCcw() >= 0); |
- if (active != SkToBool(topContour->isCcw())) { |
+#if DEBUG_WINDING |
+ SkDebugf("%s id=%d nested=%d ccw=%d\n", __FUNCTION__, |
+ topSegment->debugID(), globalState.nested(), topContour->isCcw()); |
+#endif |
+ if ((globalState.nested() & 1) != SkToBool(topContour->isCcw())) { |
topContour->setReverse(); |
writePath = true; |
} |
topContour->markDone(); |
+ globalState.clearNested(); |
} |
if (!writePath) { |
path->setFillType(fillType); |