summaryrefslogtreecommitdiff
path: root/src/mesa/vbo
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-01-02 23:02:35 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-01-02 23:02:35 +1100
commit720fd7b5e993c7e77e5b1fc75edeedd110532e0e (patch)
tree568e60e4e3a09ca09a16fc59b709c81b7c9a23ee /src/mesa/vbo
parent92ee96d83d26e56857b2999356d7c2a75e6eaf76 (diff)
parentda92ac01e80e8a83233b1d4a881503bfc2806a1a (diff)
Merge branch 'upstream-gallium-0.1' into darktama-gallium-0.1
Diffstat (limited to 'src/mesa/vbo')
-rw-r--r--src/mesa/vbo/vbo_context.c1
-rw-r--r--src/mesa/vbo/vbo_save.c15
2 files changed, 16 insertions, 0 deletions
diff --git a/src/mesa/vbo/vbo_context.c b/src/mesa/vbo/vbo_context.c
index 60d0b76ab6..235cee2429 100644
--- a/src/mesa/vbo/vbo_context.c
+++ b/src/mesa/vbo/vbo_context.c
@@ -246,6 +246,7 @@ void _vbo_DestroyContext( GLcontext *ctx )
}
vbo_exec_destroy(ctx);
+ vbo_save_destroy(ctx);
FREE(vbo_context(ctx));
ctx->swtnl_im = NULL;
}
diff --git a/src/mesa/vbo/vbo_save.c b/src/mesa/vbo/vbo_save.c
index 87248e10f3..8dd87141c0 100644
--- a/src/mesa/vbo/vbo_save.c
+++ b/src/mesa/vbo/vbo_save.c
@@ -69,6 +69,21 @@ void vbo_save_init( GLcontext *ctx )
void vbo_save_destroy( GLcontext *ctx )
{
+ struct vbo_context *vbo = vbo_context(ctx);
+ struct vbo_save_context *save = &vbo->save;
+ if (save->prim_store) {
+ if ( --save->prim_store->refcount == 0 ) {
+ FREE( save->prim_store );
+ save->prim_store = NULL;
+ }
+ if ( --save->vertex_store->refcount == 0 ) {
+ if (save->vertex_store->bufferobj)
+ ctx->Driver.DeleteBuffer( ctx, save->vertex_store->bufferobj );
+
+ FREE( save->vertex_store );
+ save->vertex_store = NULL;
+ }
+ }
}