vbo: added recursion check in vbo_exec_FlushVertices()
authorBrian Paul <brianp@vmware.com>
Thu, 19 Nov 2009 22:17:56 +0000 (15:17 -0700)
committerBrian Paul <brianp@vmware.com>
Thu, 19 Nov 2009 22:17:56 +0000 (15:17 -0700)
src/mesa/vbo/vbo_exec_api.c

index f72d2d8..c90565e 100644 (file)
@@ -867,15 +867,27 @@ void vbo_exec_FlushVertices_internal( GLcontext *ctx, GLboolean unmap )
 }
 
 
-
+/**
+ * \param flags  bitmask of FLUSH_STORED_VERTICES, FLUSH_UPDATE_CURRENT
+ */
 void vbo_exec_FlushVertices( GLcontext *ctx, GLuint flags )
 {
    struct vbo_exec_context *exec = &vbo_context(ctx)->exec;
 
+#ifdef DEBUG
+   /* debug check: make sure we don't get called recursively */
+   static GLuint callDepth = 0;
+   callDepth++;
+   assert(callDepth == 1);
+#endif
+
    if (0) _mesa_printf("%s\n", __FUNCTION__);
 
    if (exec->ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END) {
       if (0) _mesa_printf("%s - inside begin/end\n", __FUNCTION__);
+#ifdef DEBUG
+      callDepth--;
+#endif
       return;
    }
 
@@ -889,6 +901,10 @@ void vbo_exec_FlushVertices( GLcontext *ctx, GLuint flags )
    }
 
    exec->ctx->Driver.NeedFlush &= ~flags;
+
+#ifdef DEBUG
+   callDepth--;
+#endif
 }