summaryrefslogtreecommitdiff
path: root/va/x11
diff options
context:
space:
mode:
Diffstat (limited to 'va/x11')
-rw-r--r--va/x11/dri2_util.c3
-rw-r--r--va/x11/va_x11.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/va/x11/dri2_util.c b/va/x11/dri2_util.c
index 298cd31..8a6dd4f 100644
--- a/va/x11/dri2_util.c
+++ b/va/x11/dri2_util.c
@@ -193,6 +193,9 @@ isDRI2Connected(VADriverContextP ctx, char **driver_name)
dri_state->close = dri2Close;
gsDRI2SwapAvailable = (minor >= 2);
+ if (device_name)
+ Xfree(device_name);
+
return True;
err_out:
diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c
index fd7e517..0d62534 100644
--- a/va/x11/va_x11.c
+++ b/va/x11/va_x11.c
@@ -54,9 +54,18 @@ static void va_DisplayContextDestroy (
VADisplayContextP pDisplayContext
)
{
+ VADriverContextP ctx;
+ struct dri_state *dri_state;
+
if (pDisplayContext == NULL)
return;
+ ctx = pDisplayContext->pDriverContext;
+ dri_state = ctx->dri_state;
+
+ if (dri_state)
+ dri_state->close(ctx);
+
free(pDisplayContext->pDriverContext->dri_state);
free(pDisplayContext->pDriverContext);
free(pDisplayContext);