diff options
-rw-r--r-- | va/x11/dri2_util.c | 3 | ||||
-rw-r--r-- | va/x11/va_x11.c | 9 |
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); |