Index: src/gpu/GrPathUtils.cpp |
diff --git a/src/gpu/GrPathUtils.cpp b/src/gpu/GrPathUtils.cpp |
index 8e7a01d0915aa74a039c8d8e05abf3540fd4e4c3..1281f4a5ec32baa09ef5f1e7c6e65417489a75e7 100644 |
--- a/src/gpu/GrPathUtils.cpp |
+++ b/src/gpu/GrPathUtils.cpp |
@@ -46,6 +46,8 @@ uint32_t GrPathUtils::quadraticPointCount(const SkPoint points[], |
SkScalar d = points[1].distanceToLineSegmentBetween(points[0], points[2]); |
if (d <= tol) { |
return 1; |
+ } else if (!SkScalarIsFinite(d)) { |
+ return MAX_POINTS_PER_CURVE; |
} else { |
// Each time we subdivide, d should be cut in 4. So we need to |
// subdivide x = log4(d/tol) times. x subdivisions creates 2^(x) |
@@ -101,6 +103,8 @@ uint32_t GrPathUtils::cubicPointCount(const SkPoint points[], |
d = SkScalarSqrt(d); |
if (d <= tol) { |
return 1; |
+ } else if (!SkScalarIsFinite(d)) { |
+ return MAX_POINTS_PER_CURVE; |
} else { |
int temp = SkScalarCeilToInt(SkScalarSqrt(SkScalarDiv(d, tol))); |
int pow2 = GrNextPow2(temp); |