aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkEdge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkEdge.cpp')
-rw-r--r--src/core/SkEdge.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/SkEdge.cpp b/src/core/SkEdge.cpp
index 8a6d1710c9..4c264c2eb9 100644
--- a/src/core/SkEdge.cpp
+++ b/src/core/SkEdge.cpp
@@ -476,6 +476,13 @@ int SkCubicEdge::updateCubic()
newx = fCLastX;
newy = fCLastY;
}
+
+ // we want to say SkASSERT(oldy <= newy), but our finite fixedpoint
+ // doesn't always achieve that, so we have to explicitly pin it here.
+ if (newy < oldy) {
+ newy = oldy;
+ }
+
success = this->updateLine(oldx, oldy, newx, newy);
oldx = newx;
oldy = newy;