Index: src/utils/SkMatrix44.cpp |
diff --git a/src/utils/SkMatrix44.cpp b/src/utils/SkMatrix44.cpp |
index 92c8715faaec94972770f8db05b372c1245366a8..a33b2ed8ae9dc3a5f0d75139ecf3e0b6c1fd2090 100644 |
--- a/src/utils/SkMatrix44.cpp |
+++ b/src/utils/SkMatrix44.cpp |
@@ -529,13 +529,13 @@ bool SkMatrix44::invert(SkMatrix44* inverse) const { |
// Calculate the determinant |
double det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; |
- if (dabs(det) < TOO_SMALL_FOR_DETERMINANT) { |
+ double invdet = 1.0 / det; |
reed1
2013/08/15 19:40:46
// If det is zero, we want to return false. Howeve
|
+ if (!isfinite(invdet)) { |
return false; |
} |
if (NULL == inverse) { |
return true; |
} |
- double invdet = 1.0 / det; |
b00 *= invdet; |
b01 *= invdet; |
@@ -568,7 +568,6 @@ bool SkMatrix44::invert(SkMatrix44* inverse) const { |
inverse->fMat[3][3] = SkDoubleToMScalar(a20 * b03 - a21 * b01 + a22 * b00); |
inverse->dirtyTypeMask(); |
- inverse->dirtyTypeMask(); |
return true; |
} |