mesa: unmap the immediate mode VB before destroying it
authorBrian Paul <brianp@vmware.com>
Mon, 19 Apr 2010 16:27:55 +0000 (10:27 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 19 Apr 2010 16:27:57 +0000 (10:27 -0600)
Fixes failed assertion from fd.o bug 27713.

The assertion was added with the new resource/transfer changes.
This patch could apply to the 7.8 branch but it's not essential.

src/mesa/vbo/vbo_exec_api.c

index e83bd9e4045aa052fa39401062e775c23e3b8633..0ccbb423831c11f5ebd4568aff1b9b5e82d83273 100644 (file)
@@ -850,8 +850,11 @@ void vbo_exec_vtx_destroy( struct vbo_exec_context *exec )
                                     NULL);
    }
 
-   /* Free the vertex buffer:
+   /* Free the vertex buffer.  Unmap first if needed.
     */
+   if (_mesa_bufferobj_mapped(exec->vtx.bufferobj)) {
+      ctx->Driver.UnmapBuffer(ctx, GL_ARRAY_BUFFER, exec->vtx.bufferobj);
+   }
    _mesa_reference_buffer_object(ctx, &exec->vtx.bufferobj, NULL);
 }