From ababb87313294ef9f9b42c74204319657a5126e3 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Tue, 12 Feb 2008 11:09:08 +0000 Subject: [PATCH] sys/ximage/gstximagesrc.c: Free allocated Damage memory before closing our connection to the Original commit message from CVS: * sys/ximage/gstximagesrc.c: Free allocated Damage memory before closing our connection to the X server. Fixes: #515706 --- ChangeLog | 6 ++++++ sys/ximage/gstximagesrc.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index cd48db4..84f7a5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-12 Jan Schmidt + + * sys/ximage/gstximagesrc.c: + Free allocated Damage memory before closing our connection to the + X server. Fixes: #515706 + 2008-02-12 Sebastian Dröge * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain): diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c index c5ed9c2..89b5838 100644 --- a/sys/ximage/gstximagesrc.c +++ b/sys/ximage/gstximagesrc.c @@ -206,6 +206,9 @@ gst_ximage_src_start (GstBaseSrc * basesrc) s->last_frame_no = -1; #ifdef HAVE_XDAMAGE s->last_ximage = NULL; + s->damage = None; + s->damage_copy_gc = None; + s->damage_region = None; #endif return gst_ximage_src_open_display (s, s->display_name); } @@ -219,6 +222,22 @@ gst_ximage_src_stop (GstBaseSrc * basesrc) if (src->xcontext) { g_mutex_lock (src->x_lock); + +#ifdef HAVE_XDAMAGE + if (src->damage_copy_gc != None) { + XFreeGC (src->xcontext->disp, src->damage_copy_gc); + src->damage_copy_gc = None; + } + if (src->damage_region != None) { + XFixesDestroyRegion (src->xcontext->disp, src->damage_region); + src->damage_region = None; + } + if (src->damage != None) { + XDamageDestroy (src->xcontext->disp, src->damage); + src->damage = None; + } +#endif + ximageutil_xcontext_clear (src->xcontext); src->xcontext = NULL; g_mutex_unlock (src->x_lock); -- 2.7.4