diff options
-rw-r--r-- | src/mesa/tnl/t_save_api.c | 12 |
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 ); } |