Revert "Revert "implement SkScalar versions in terms of float versions""
This reverts commit 0e6db75eebab430e7f6665c8cfa1e7dcd2fef123.
Bug: skia:
Change-Id: I015d01efc58dfe03dae6bcc57c4b1102276e7566
Reviewed-on: https://skia-review.googlesource.com/127967
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/src/core/SkMatrix44.cpp b/src/core/SkMatrix44.cpp
index c8bd191..bc3b35f 100644
--- a/src/core/SkMatrix44.cpp
+++ b/src/core/SkMatrix44.cpp
@@ -579,11 +579,11 @@
// Calculate the determinant
double det = b00 * b11 - b01 * b10 + b03 * b08;
- double invdet = 1.0 / det;
+ double invdet = sk_ieee_double_divide(1.0, det);
// If det is zero, we want to return false. However, we also want to return false
// if 1/det overflows to infinity (i.e. det is denormalized). Both of these are
// handled by checking that 1/det is finite.
- if (!sk_float_isfinite(invdet)) {
+ if (!sk_float_isfinite(sk_double_to_float(invdet))) {
return false;
}
@@ -640,11 +640,11 @@
// Calculate the determinant
double det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
- double invdet = 1.0 / det;
+ double invdet = sk_ieee_double_divide(1.0, det);
// If det is zero, we want to return false. However, we also want to return false
// if 1/det overflows to infinity (i.e. det is denormalized). Both of these are
// handled by checking that 1/det is finite.
- if (!sk_float_isfinite(invdet)) {
+ if (!sk_float_isfinite(sk_double_to_float(invdet))) {
return false;
}