mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-24 00:40:36 +02:00
st/dri: fix optionCache memory leaks
Signed-off-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
23ae318200
commit
e978b24c87
2 changed files with 16 additions and 0 deletions
|
|
@ -101,6 +101,12 @@ dri_destroy_context(__DRIcontextPrivate * cPriv)
|
|||
{
|
||||
struct dri_context *ctx = dri_context(cPriv);
|
||||
|
||||
/* note: we are freeing values and nothing more because
|
||||
* driParseConfigFiles allocated values only - the rest
|
||||
* is owned by screen optionCache.
|
||||
*/
|
||||
FREE(ctx->optionCache.values);
|
||||
|
||||
/* No particular reason to wait for command completion before
|
||||
* destroying a context, but it is probably worthwhile flushing it
|
||||
* to avoid having to add code elsewhere to cope with flushing a
|
||||
|
|
|
|||
|
|
@ -327,8 +327,18 @@ static void
|
|||
dri_destroy_screen(__DRIscreenPrivate * sPriv)
|
||||
{
|
||||
struct dri_screen *screen = dri_screen(sPriv);
|
||||
int i;
|
||||
|
||||
screen->pipe_screen->destroy(screen->pipe_screen);
|
||||
|
||||
for (i = 0; i < (1 << screen->optionCache.tableSize); ++i) {
|
||||
FREE(screen->optionCache.info[i].name);
|
||||
FREE(screen->optionCache.info[i].ranges);
|
||||
}
|
||||
|
||||
FREE(screen->optionCache.info);
|
||||
FREE(screen->optionCache.values);
|
||||
|
||||
FREE(screen);
|
||||
sPriv->private = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue