fix fuzz divide by zero
R=kjlubick@google.com
Bug: skia:10985
Change-Id: I68fdb03e9d3cd6d7826b0d4fb16d181f7f648699
Reviewed-on: https://skia-review.googlesource.com/c/164685
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/src/pathops/SkOpAngle.cpp b/src/pathops/SkOpAngle.cpp
index d89706a..e25d7c4 100644
--- a/src/pathops/SkOpAngle.cpp
+++ b/src/pathops/SkOpAngle.cpp
@@ -637,9 +637,9 @@
maxY = SkTMax(maxY, curve[idx2].fY);
}
double maxWidth = SkTMax(maxX - minX, maxY - minY);
- endDist /= maxWidth;
- if (endDist < 5e-12) { // empirically found
- return false;
+ endDist = sk_ieee_double_divide(endDist, maxWidth);
+ if (!(endDist >= 5e-12)) { // empirically found
+ return false; // ! above catches NaN
}
const SkDPoint* endPt = &rayEnd[0];
SkDPoint oppPt = iEnd.pt(closestEnd);