From c2e1ee08b083638a7306e15ca48e9ea516d42dc4 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 3 Sep 2007 16:20:05 -0600 Subject: [PATCH] Use temporary matrix in __gluInvertMatrixd() to fix aliasing problem (see bugs 12269, 6748) --- src/glu/sgi/libutil/project.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/glu/sgi/libutil/project.c b/src/glu/sgi/libutil/project.c index d22989c3855..356b46b8992 100644 --- a/src/glu/sgi/libutil/project.c +++ b/src/glu/sgi/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; } -- 2.30.2