diff options
author | Oleksandr Shcherbina <o.shcherbina@samsung.com> | 2016-01-13 14:04:34 +0100 |
---|---|---|
committer | Stefan Schmidt <stefan@osg.samsung.com> | 2016-01-13 14:04:35 +0100 |
commit | 93df8720f9312206b637cf043a5747e93ed81541 (patch) | |
tree | 347a8b968224d731a59b6ce94ff08e8e9fbec632 | |
parent | 9e00bd01a138c40da89b7d90fc16a9205f660122 (diff) | |
download | efl-93df8720f9312206b637cf043a5747e93ed81541.tar.gz |
eina: Fix possible wrong value due to null in determinant of matrix
Reviewers: cedric, Hermet
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3563
-rw-r--r-- | src/lib/eina/eina_matrix.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c index 13362f95ee..d7aeebf50a 100644 --- a/src/lib/eina/eina_matrix.c +++ b/src/lib/eina/eina_matrix.c @@ -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; |