aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/gradients/SkTwoPointConicalGradient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shaders/gradients/SkTwoPointConicalGradient.cpp')
-rw-r--r--src/shaders/gradients/SkTwoPointConicalGradient.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.cpp b/src/shaders/gradients/SkTwoPointConicalGradient.cpp
index 48877da34c..d98f4bce20 100644
--- a/src/shaders/gradients/SkTwoPointConicalGradient.cpp
+++ b/src/shaders/gradients/SkTwoPointConicalGradient.cpp
@@ -54,6 +54,9 @@ sk_sp<SkShader> SkTwoPointConicalGradient::Create(const SkPoint& c0, SkScalar r0
Type gradientType;
if (SkScalarNearlyZero((c0 - c1).length())) {
+ if (SkScalarNearlyZero(SkTMax(r0, r1))) {
+ return nullptr; // Degenerate case; avoid dividing by zero.
+ }
// Concentric case: we can pretend we're radial (with a tiny twist).
const SkScalar scale = sk_ieee_float_divide(1, SkTMax(r0, r1));
gradientMatrix = SkMatrix::MakeTrans(-c1.x(), -c1.y());