Index: sgl/SkEdge.cpp
===================================================================
--- sgl/SkEdge.cpp	(revision 42965)
+++ sgl/SkEdge.cpp	(working copy)
@@ -17,6 +17,7 @@
 
 #include "SkEdge.h"
 #include "SkFDot6.h"
+#include <limits>
 
 /*
     In setLine, setQuadratic, setCubic, the first thing we do is to convert
@@ -76,8 +77,23 @@
 
     fX          = SkFDot6ToFixed(x0 + SkFixedMul(slope, (32 - y0) & 63));   // + SK_Fixed1/2
     fDX         = slope;
-    fFirstY     = SkToS16(top);
-    fLastY      = SkToS16(bot - 1);
+    fFirstY     = (int16_t)(top);       // inlined skToS16()
+    if (top != (long)fFirstY) {
+        if (fFirstY < top) {
+            fFirstY = std::numeric_limits<int16_t>::max();
+        } else {
+            fFirstY = std::numeric_limits<int16_t>::min();
+        }
+        fX -= fDX * (top - (long)fFirstY);
+    }
+    fLastY      = (int16_t)(bot - 1);   // inlined SkToS16()
+    if (bot-1 != (long)fLastY) {
+        if (fLastY < bot-1) {
+            fLastY = std::numeric_limits<int16_t>::max();
+        } else {
+            fLastY = std::numeric_limits<int16_t>::min();
+        }
+    }
     fCurveCount = 0;
     fWinding    = SkToS8(winding);
     fCurveShift = 0;
