Does this fix things?
NOTREECHECKS=true
CQ_EXTRA_TRYBOTS=tryserver.skia:Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot
BUG=skia:
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/492343002
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp
index 502d733..c84e46a 100644
--- a/src/effects/gradients/SkGradientShader.cpp
+++ b/src/effects/gradients/SkGradientShader.cpp
@@ -161,10 +161,11 @@
curr = SkScalarPin(desc.fPos[i], 0, 1);
}
*origPosPtr++ = curr;
-
+
recs->fPos = SkScalarToFixed(curr);
- if (curr > prev) {
- recs->fScale = (1 << 24) / SkScalarToFixed(curr - prev);
+ SkFixed diff = SkScalarToFixed(curr - prev);
+ if (diff > 0) {
+ recs->fScale = (1 << 24) / diff;
} else {
recs->fScale = 0; // ignore this segment
}