eina: Fix possible wrong value due to null in determinant of matrix
authorOleksandr Shcherbina <o.shcherbina@samsung.com>
Wed, 13 Jan 2016 13:04:34 +0000 (14:04 +0100)
committerStefan Schmidt <stefan@osg.samsung.com>
Wed, 13 Jan 2016 13:04:35 +0000 (14:04 +0100)
Reviewers: cedric, Hermet

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3563

src/lib/eina/eina_matrix.c

index 13362f9..d7aeebf 100644 (file)
@@ -1164,7 +1164,9 @@ eina_normal3_matrix_get(Eina_Matrix3 *out, const Eina_Matrix4 *m)
    double   i = MATRIX_ZZ(m);
 
    det = a * e * i + b * f * g + c * d * h - g * e * c - h * f * a - i * d * b;
-   det = 1.0 / det;
+
+   if (fabs(det) >= DBL_EPSILON) det = 1.0 / det;
+   else det = 0.0;
 
    MATRIX_XX(out) = (e * i - f * h) * det;
    MATRIX_XY(out) = (h * c - i * b) * det;