summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdgar Hucek <gimli@dark-green.com>2011-06-13 13:46:06 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2011-06-13 13:46:06 +0800
commit1628a5c6a2b0ec14ebc5f99bf771f8291316a28d (patch)
treee8b916c2cc2a8da86c0d82cbc60897fa9dd57c7e
parent942eedcb0887f8d5cab3b8c6a00ad0173adc5d13 (diff)
libva: fix memeory leaks in libva
Signed-off-by: Edgar Hucek <gimli@dark-green.com> Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-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);