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 58cae88b08b503c1c7425e581be0c1dfa0516ae1..da6956efed5f97183395db696fb4868813a4e5fa 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);
 }
 
 /*@}*/