diff options
author | caryclark <caryclark@google.com> | 2016-01-05 06:20:09 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-05 06:20:09 -0800 |
commit | dbaec7323f20c3a7e8a234dac9dfb8a9446a2717 (patch) | |
tree | d1498bb89786c04c4c37c1f6d850889a624aed3c /src/core/SkGeometry.cpp | |
parent | 4e5a758f3832594cf1828d367496b5a80bcab8ee (diff) |
give up on quad root if infinite
SkPath::contains() uses SkFindUnitQuadRoots to see
which side of a curve a point is on. If the
intermediate exceeds a float, return no found root.
R=reed@google.com
BUG=572406
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1556353002
Review URL: https://codereview.chromium.org/1556353002
Diffstat (limited to 'src/core/SkGeometry.cpp')
-rw-r--r-- | src/core/SkGeometry.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp index f7c8f5736e..fb9cb5c511 100644 --- a/src/core/SkGeometry.cpp +++ b/src/core/SkGeometry.cpp @@ -90,7 +90,7 @@ int SkFindUnitQuadRoots(SkScalar A, SkScalar B, SkScalar C, SkScalar roots[2]) { SkScalar* r = roots; SkScalar R = B*B - 4*A*C; - if (R < 0 || SkScalarIsNaN(R)) { // complex roots + if (R < 0 || !SkScalarIsFinite(R)) { // complex roots return 0; } R = SkScalarSqrt(R); |