summaryrefslogtreecommitdiffstats
path: root/src/mesa/tnl/t_save_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/tnl/t_save_api.c')
-rw-r--r--src/mesa/tnl/t_save_api.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mesa/tnl/t_save_api.c b/src/mesa/tnl/t_save_api.c
index b3637cf8d9b..b43b048083f 100644
--- a/src/mesa/tnl/t_save_api.c
+++ b/src/mesa/tnl/t_save_api.c
@@ -1708,5 +1708,15 @@ void _tnl_save_init( GLcontext *ctx )
*/
void _tnl_save_destroy( GLcontext *ctx )
{
- (void) ctx;
+ TNLcontext *tnl = TNL_CONTEXT(ctx);
+
+ /* Decrement the refcounts. References may still be held by
+ * display lists yet to be destroyed, so it may not yet be time to
+ * free these items.
+ */
+ if ( --tnl->save.prim_store->refcount == 0 )
+ FREE( tnl->save.prim_store );
+
+ if ( --tnl->save.vertex_store->refcount == 0 )
+ FREE( tnl->save.vertex_store );
}