diff options
author | Jan Schmidt <thaytan@mad.scientist.com> | 2008-02-12 11:09:08 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@mad.scientist.com> | 2008-02-12 11:09:08 +0000 |
commit | ababb87313294ef9f9b42c74204319657a5126e3 (patch) | |
tree | 8cec87ceb0bd153e454f073fda35cc6afc15a3b8 /sys/ximage | |
parent | a0a9fe66fe41be48996c7751489908f76e6e50de (diff) |
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
Diffstat (limited to 'sys/ximage')
-rw-r--r-- | sys/ximage/gstximagesrc.c | 19 |
1 files changed, 19 insertions, 0 deletions
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); |