Index: src/pathops/SkPathOpsWinding.cpp |
diff --git a/src/pathops/SkPathOpsWinding.cpp b/src/pathops/SkPathOpsWinding.cpp |
index 53083e484e6e2896cb63ffb91f382cd1ebd35aa4..4a7b1bc3ebcd1a90d60078158794064002e4dcea 100644 |
--- a/src/pathops/SkPathOpsWinding.cpp |
+++ b/src/pathops/SkPathOpsWinding.cpp |
@@ -342,8 +342,12 @@ bool SkOpSpan::sortableTop(SkOpContour* contourHead) { |
#endif |
} |
if (sumSet) { |
- (void) hitSegment->markAndChaseWinding(span, span->next(), windSum, oppSum, NULL); |
- (void) hitSegment->markAndChaseWinding(span->next(), span, windSum, oppSum, NULL); |
+ if (this->globalState()->phase() == SkOpGlobalState::kFixWinding) { |
+ hitSegment->contour()->setCcw(ccw); |
+ } else { |
+ (void) hitSegment->markAndChaseWinding(span, span->next(), windSum, oppSum, NULL); |
+ (void) hitSegment->markAndChaseWinding(span->next(), span, windSum, oppSum, NULL); |
+ } |
} |
if (operand) { |
SkTSwap(wind, oppWind); |