              }
 -
 +#if defined(IS_FUZZING)
-+            if ((iy0 - iy1) > 100000 || (iy0 - iy1) < 0) {
++            if ((iy1 - iy0) > 100000 || (iy1 - iy0) < 0) {
 +                continue; // too big to draw
 +            }
 +#endif

             }
-
+#if defined(IS_FUZZING)
+            if ((ix0 - ix1) > 100000 || (ix0 - ix1) < 0) {
+                continue; // too big to draw
+            }
+#endif

                                     SkEdgeBuilder::kAnalyticEdge);
     SkAnalyticEdge** list = builder.analyticEdgeList();
diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp
index 815130d532..310d464bb7 100644
--- a/src/core/SkScan_Hairline.cpp
+++ b/src/core/SkScan_Hairline.cpp
@@ -118,7 +118,11 @@ void SkScan::HairLineRgn(const SkPoint array[], int arrayCount, const SkRegion*
