Fix precision-limit loop check.

This loop was not checking the entire range of gradient intervals.
In practice this is probably not a big deal, since it only affects a
few devices, and only matters for very complex gradients.

Change-Id: I735fcace013633c2bb14da65c4f573a3ef837d06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457497
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
diff --git a/src/gpu/gradients/GrGradientShader.cpp b/src/gpu/gradients/GrGradientShader.cpp
index 34bb66c..cf1438f 100644
--- a/src/gpu/gradients/GrGradientShader.cpp
+++ b/src/gpu/gradients/GrGradientShader.cpp
@@ -345,8 +345,8 @@
             // Could run into problems. Check if thresholds are close together (with a limit of .01,
             // so that scales will be less than 100, which leaves 4 decimals of precision on
             // 16-bit).
-            for (int i = offset; i < count - 1; i++) {
-                SkScalar dt = SkScalarAbs(positions[i] - positions[i + 1]);
+            for (int i = 0; i < count - 1; i++) {
+                SkScalar dt = SkScalarAbs(positions[offset + i] - positions[offset + i + 1]);
                 if (dt <= kLowPrecisionIntervalLimit && dt > SK_ScalarNearlyZero) {
                     return true;
                 }