mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 15:38:09 +02:00
free any render/framebuffers left in hash tables when freeing shared state
This commit is contained in:
parent
fef9a41fe4
commit
f6696cc15e
1 changed files with 23 additions and 0 deletions
|
|
@ -628,6 +628,27 @@ delete_shader_cb(GLuint id, void *data, void *userData)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for deleting a framebuffer object. Called by _mesa_HashDeleteAll()
|
||||
*/
|
||||
static void
|
||||
delete_framebuffer_cb(GLuint id, void *data, void *userData)
|
||||
{
|
||||
struct gl_framebuffer *fb = (struct gl_framebuffer *) data;
|
||||
fb->Delete(fb);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for deleting a renderbuffer object. Called by _mesa_HashDeleteAll()
|
||||
*/
|
||||
static void
|
||||
delete_renderbuffer_cb(GLuint id, void *data, void *userData)
|
||||
{
|
||||
struct gl_renderbuffer *rb = (struct gl_renderbuffer *) data;
|
||||
rb->Delete(rb);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Deallocate a shared state object and all children structures.
|
||||
|
|
@ -695,7 +716,9 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
|
|||
#endif
|
||||
|
||||
#if FEATURE_EXT_framebuffer_object
|
||||
_mesa_HashDeleteAll(ss->FrameBuffers, delete_framebuffer_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->FrameBuffers);
|
||||
_mesa_HashDeleteAll(ss->RenderBuffers, delete_renderbuffer_cb, ctx);
|
||||
_mesa_DeleteHashTable(ss->RenderBuffers);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue