Index: src/pathops/SkDQuadLineIntersection.cpp |
diff --git a/src/pathops/SkDQuadLineIntersection.cpp b/src/pathops/SkDQuadLineIntersection.cpp |
index 14d7d9cea0482e9a3edcdb6e86bcc8780752c169..8fce7a089f7c79c48929d398cfa9270f25dbf184 100644 |
--- a/src/pathops/SkDQuadLineIntersection.cpp |
+++ b/src/pathops/SkDQuadLineIntersection.cpp |
@@ -141,14 +141,18 @@ public: |
if (fAllowNear) { |
addNearEndPoints(); |
} |
- double rootVals[2]; |
- int roots = intersectRay(rootVals); |
- for (int index = 0; index < roots; ++index) { |
- double quadT = rootVals[index]; |
- double lineT = findLineT(quadT); |
- SkDPoint pt; |
- if (pinTs(&quadT, &lineT, &pt, kPointUninitialized)) { |
- fIntersections->insert(quadT, lineT, pt); |
+ if (fIntersections->used() == 2) { |
+ // FIXME : need sharable code that turns spans into coincident if middle point is on |
+ } else { |
+ double rootVals[2]; |
+ int roots = intersectRay(rootVals); |
+ for (int index = 0; index < roots; ++index) { |
+ double quadT = rootVals[index]; |
+ double lineT = findLineT(quadT); |
+ SkDPoint pt; |
+ if (pinTs(&quadT, &lineT, &pt, kPointUninitialized)) { |
+ fIntersections->insert(quadT, lineT, pt); |
+ } |
} |
} |
return fIntersections->used(); |