aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@google.com>2017-12-05 17:14:08 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-12-13 18:16:00 +0000
commitb9042d206ab8762429c61160383094360fb04c7a (patch)
treeaeb1d3e2ccb76607dbd6afa1bb84d05d37eaa91f /src/pathops
parentd86cc0bcc777a25566dcf67ab8e785bf15be8338 (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.cpp5
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) {