mesa: only clear matrix MAT_DIRTY_INVERSE flag when we actually compute the inverse
authorBrian Paul <brianp@vmware.com>
Fri, 3 Apr 2009 18:49:03 +0000 (12:49 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 3 Apr 2009 18:49:03 +0000 (12:49 -0600)
If _math_matrix_analyse() got called before we allocated the inverse
matrix array we could lose the flag indicating that we needed to compute
the inverse.  This could happen with certain vertex shader cases.

src/mesa/math/m_matrix.c

index 58cae88..da6956e 100644 (file)
@@ -1379,11 +1379,10 @@ _math_matrix_analyse( GLmatrix *mat )
 
    if (mat->inv && (mat->flags & MAT_DIRTY_INVERSE)) {
       matrix_invert( mat );
+      mat->flags &= ~MAT_DIRTY_INVERSE;
    }
 
-   mat->flags &= ~(MAT_DIRTY_FLAGS|
-                  MAT_DIRTY_TYPE|
-                  MAT_DIRTY_INVERSE);
+   mat->flags &= ~(MAT_DIRTY_FLAGS | MAT_DIRTY_TYPE);
 }
 
 /*@}*/