From ababb87313294ef9f9b42c74204319657a5126e3 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Tue, 12 Feb 2008 11:09:08 +0000 Subject: 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 --- sys/ximage/gstximagesrc.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'sys/ximage') diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c index c5ed9c26..89b5838a 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); -- cgit