Index: src/pathops/SkReduceOrder.cpp |
diff --git a/src/pathops/SkReduceOrder.cpp b/src/pathops/SkReduceOrder.cpp |
index 52a19d6138aaa38dbe257090cebaeb60ba283601..48624baee9acc8e1870abf18e085778940ea59a6 100644 |
--- a/src/pathops/SkReduceOrder.cpp |
+++ b/src/pathops/SkReduceOrder.cpp |
@@ -78,10 +78,12 @@ int SkReduceOrder::reduce(const SkDQuad& quad) { |
minYSet |= 1 << index; |
} |
} |
+ if ((minXSet & 0x05) == 0x5 && (minYSet & 0x05) == 0x5) { // test for degenerate |
+ // this quad starts and ends at the same place, so never contributes |
+ // to the fill |
+ return coincident_line(quad, fQuad); |
+ } |
if (minXSet == 0x7) { // test for vertical line |
- if (minYSet == 0x7) { // return 1 if all three are coincident |
- return coincident_line(quad, fQuad); |
- } |
return vertical_line(quad, fQuad); |
} |
if (minYSet == 0x7) { // test for horizontal line |