summaryrefslogtreecommitdiff
path: root/src/libutil
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-09-03 16:20:05 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-09-03 16:22:14 -0600
commit9f465350628010d06025d3fb8a1854122328bd15 (patch)
tree19d8c7a26e67807a21422b58ccfbfc11a03f41c4 /src/libutil
parent45579ac79082877a0947f7daaa0389add3d05363 (diff)
downloadglu-9f465350628010d06025d3fb8a1854122328bd15.tar.gz
Use temporary matrix in __gluInvertMatrixd() to fix aliasing problem (see bugs 12269, 6748)
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/project.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libutil/project.c b/src/libutil/project.c
index d22989c..356b46b 100644
--- a/src/libutil/project.c
+++ b/src/libutil/project.c
@@ -171,9 +171,9 @@ static void __gluMultMatrixVecd(const GLdouble matrix[16], const GLdouble in[4],
** Invert 4x4 matrix.
** Contributed by David Moore (See Mesa bug #6748)
*/
-static int __gluInvertMatrixd(const GLdouble m[16], GLdouble inv[16])
+static int __gluInvertMatrixd(const GLdouble m[16], GLdouble invOut[16])
{
- double det;
+ double inv[16], det;
int i;
inv[0] = m[5]*m[10]*m[15] - m[5]*m[11]*m[14] - m[9]*m[6]*m[15]
@@ -216,7 +216,7 @@ static int __gluInvertMatrixd(const GLdouble m[16], GLdouble inv[16])
det = 1.0 / det;
for (i = 0; i < 16; i++)
- inv[i] *= det;
+ invOut[i] = inv[i] * det;
return GL_TRUE;
}