Index: src/pathops/SkOpContour.h |
diff --git a/src/pathops/SkOpContour.h b/src/pathops/SkOpContour.h |
index a5635fe3d2b59b083dcb5801df931fa71de103ac..a4ec6d398f04bdbab27a11bc0867bbc55be657d3 100644 |
--- a/src/pathops/SkOpContour.h |
+++ b/src/pathops/SkOpContour.h |
@@ -36,7 +36,7 @@ public: |
: fBounds.fTop < rh.fBounds.fTop; |
} |
- void addCoincident(int index, SkOpContour* other, int otherIndex, |
+ bool addCoincident(int index, SkOpContour* other, int otherIndex, |
const SkIntersections& ts, bool swap); |
void addCoincidentPoints(); |
@@ -63,7 +63,7 @@ public: |
fSegments[segIndex].addOtherT(tIndex, otherT, otherIndex); |
} |
- void addPartialCoincident(int index, SkOpContour* other, int otherIndex, |
+ bool addPartialCoincident(int index, SkOpContour* other, int otherIndex, |
const SkIntersections& ts, int ptIndex, bool swap); |
int addQuad(const SkPoint pts[3]) { |
@@ -100,6 +100,9 @@ public: |
if (segment->verb() == SkPath::kLine_Verb) { |
continue; |
} |
+ if (segment->done()) { |
+ continue; // likely coincident, nothing to do |
+ } |
segment->checkEnds(); |
} |
} |