diff options
author | Brian <[email protected]> | 2007-12-28 14:51:52 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2008-01-01 10:20:56 -0700 |
commit | f0676cc4223fe05d84cee9d16f1094a7bfa181d4 (patch) | |
tree | b9c1b313f2114e6ad053c3b0e5d33655bbccf837 /src/mesa/vbo/vbo_save.c | |
parent | 6c0fc07d71cd1a4e311c8e638e718f7df189af79 (diff) |
fix vbo display list memleak upon context destruction
Diffstat (limited to 'src/mesa/vbo/vbo_save.c')
-rw-r--r-- | src/mesa/vbo/vbo_save.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mesa/vbo/vbo_save.c b/src/mesa/vbo/vbo_save.c index 87248e10f3b..8dd87141c0c 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; + } + } } |