Index: src/pathops/SkOpCubicHull.cpp |
diff --git a/src/pathops/SkOpCubicHull.cpp b/src/pathops/SkOpCubicHull.cpp |
index 11eaa1f8a9b5060e2a7bb8870352546b15a3fbdc..b71f2928e036bdaa1a24d3089f48c739f4b2a2e9 100644 |
--- a/src/pathops/SkOpCubicHull.cpp |
+++ b/src/pathops/SkOpCubicHull.cpp |
@@ -14,6 +14,18 @@ static bool rotate(const SkDCubic& cubic, int zero, int index, SkDCubic& rotPath |
return false; |
} |
rotPath = cubic; |
+ if (dy) { |
+ rotPath[index].fY = cubic[zero].fY; |
+ int mask = other_two(index, zero); |
+ int side1 = index ^ mask; |
+ int side2 = zero ^ mask; |
+ if (approximately_equal(cubic[side1].fY, cubic[zero].fY)) { |
+ rotPath[side1].fY = cubic[zero].fY; |
+ } |
+ if (approximately_equal(cubic[side2].fY, cubic[zero].fY)) { |
+ rotPath[side2].fY = cubic[zero].fY; |
+ } |
+ } |
return true; |
} |
for (int index = 0; index < 4; ++index) { |