Revert "Make SkMatrix44::invert() check for finite 1/det instead of magic value"
This reverts commit f109b4ac6ef21ccb8b76891e50e63dae820af116.
git-svn-id: http://skia.googlecode.com/svn/trunk@10760 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkMatrix44.cpp b/src/utils/SkMatrix44.cpp
index 9ceecbd..92c8715 100644
--- a/src/utils/SkMatrix44.cpp
+++ b/src/utils/SkMatrix44.cpp
@@ -529,16 +529,13 @@
// Calculate the determinant
double det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
- double invdet = 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 (dabs(det) < TOO_SMALL_FOR_DETERMINANT) {
return false;
}
if (NULL == inverse) {
return true;
}
+ double invdet = 1.0 / det;
b00 *= invdet;
b01 *= invdet;
@@ -571,6 +568,7 @@
inverse->fMat[3][3] = SkDoubleToMScalar(a20 * b03 - a21 * b01 + a22 * b00);
inverse->dirtyTypeMask();
+ inverse->dirtyTypeMask();
return true;
}