diff options
author | Cary Clark <caryclark@google.com> | 2017-12-05 17:14:08 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-13 18:16:00 +0000 |
commit | b9042d206ab8762429c61160383094360fb04c7a (patch) | |
tree | aeb1d3e2ccb76607dbd6afa1bb84d05d37eaa91f /src/pathops | |
parent | d86cc0bcc777a25566dcf67ab8e785bf15be8338 (diff) |
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 <benjaminwagner@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Diffstat (limited to 'src/pathops')
-rw-r--r-- | src/pathops/SkPathOpsTypes.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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) { |