From c91720fb1ab06af683a33b8734391a5a73cc23e5 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 9 Aug 2005 16:11:28 +0000 Subject: Decrement the context's refcounts on part-used storage structs on context destroy. Fixes memory leak. --- src/mesa/tnl/t_save_api.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/mesa') diff --git a/src/mesa/tnl/t_save_api.c b/src/mesa/tnl/t_save_api.c index b3637cf8d9..b43b048083 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 ); } -- cgit v1.2.3