From: Sean D'Epagnier Date: Tue, 24 Apr 2007 04:17:30 +0000 (-0700) Subject: Added proper cleanup code X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47ad443c55cf07b32bac04b97066cfd3c2aa3554;p=mesa.git Added proper cleanup code --- diff --git a/src/mesa/drivers/fbdev/glfbdev.c b/src/mesa/drivers/fbdev/glfbdev.c index 0ece3864d08..6c6511b7e53 100644 --- a/src/mesa/drivers/fbdev/glfbdev.c +++ b/src/mesa/drivers/fbdev/glfbdev.c @@ -682,9 +682,16 @@ glFBDevDestroyBuffer( GLFBDevBufferPtr buffer ) if (buffer == curDraw || buffer == curRead) { glFBDevMakeCurrent( NULL, NULL, NULL); } +#if 0 /* free the software depth, stencil, accum buffers */ _mesa_free_framebuffer_data(&buffer->glframebuffer); _mesa_free(buffer); +#else + { + struct gl_framebuffer *fb = &buffer->glframebuffer; + _mesa_unreference_framebuffer(&fb); + } +#endif } } @@ -799,6 +806,13 @@ glFBDevDestroyContext( GLFBDevContextPtr context ) GLFBDevContextPtr fbdevctx = glFBDevGetCurrentContext(); if (context) { + GLcontext *mesaCtx = &context->glcontext; + + _swsetup_DestroyContext( mesaCtx ); + _swrast_DestroyContext( mesaCtx ); + _tnl_DestroyContext( mesaCtx ); + _vbo_DestroyContext( mesaCtx ); + if (fbdevctx == context) { /* destroying current context */ _mesa_make_current(NULL, NULL, NULL);