From b9042d206ab8762429c61160383094360fb04c7a Mon Sep 17 00:00:00 2001 From: Cary Clark Date: Tue, 5 Dec 2017 17:14:08 -0500 Subject: fix float-cast-overflow in pathops these tests can be taken off the blacklist: clippedcubic2 PathOpsCubicIntersection PathOpsCubicLineIntersection PathOpsOpCubicsThreaded PathOpsOpLoopsThreaded R=benjaminwagner@google.com Bug: skia:7052 Change-Id: I25b422e78ea1d19531613fea0a3fece7f4096e16 Reviewed-on: https://skia-review.googlesource.com/80863 Reviewed-by: Ben Wagner Reviewed-by: Mike Klein Commit-Queue: Mike Klein --- src/pathops/SkPathOpsTypes.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/pathops') diff --git a/src/pathops/SkPathOpsTypes.cpp b/src/pathops/SkPathOpsTypes.cpp index bddfd7e508..df46c2039e 100644 --- a/src/pathops/SkPathOpsTypes.cpp +++ b/src/pathops/SkPathOpsTypes.cpp @@ -120,7 +120,10 @@ bool AlmostDequalUlps(float a, float b) { } bool AlmostDequalUlps(double a, double b) { - return AlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); + if (fabs(a) < SK_ScalarMax && fabs(b) < SK_ScalarMax) { + return AlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); + } + return fabs(a - b) / SkTMax(fabs(a), fabs(b)) < FLT_EPSILON * 16; } bool AlmostEqualUlps(float a, float b) { -- cgit v1.2.3