summaryrefslogtreecommitdiff
path: root/gst/gstnicesink.c
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2014-08-18 15:30:05 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2014-08-18 15:31:10 -0400
commit5f2a2dd6fc5869689d6bdb72b1ddfb91cd1aa138 (patch)
tree45480d3b0dac99acd214ee8a466812f57247913d /gst/gstnicesink.c
parent489c8e1c791a172477d0f7ac7a165f4260203cf9 (diff)
downloadlibnice-5f2a2dd6fc5869689d6bdb72b1ddfb91cd1aa138.tar.gz
nicesink: Check for signal present before removing it
The signal is only connected when setting an agent, if no agent has been set, there will be no signal.
Diffstat (limited to 'gst/gstnicesink.c')
-rw-r--r--gst/gstnicesink.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gst/gstnicesink.c b/gst/gstnicesink.c
index 5433a30..80cca40 100644
--- a/gst/gstnicesink.c
+++ b/gst/gstnicesink.c
@@ -259,11 +259,10 @@ gst_nice_sink_dispose (GObject *object)
{
GstNiceSink *sink = GST_NICE_SINK (object);
- if (sink->agent) {
+ if (sink->agent && sink->writable_id)
g_signal_handler_disconnect (sink->agent, sink->writable_id);
- g_object_unref (sink->agent);
- }
- sink->agent = NULL;
+ sink->writable_id = 0;
+ g_clear_object (&sink->agent);
g_cond_clear (&sink->writable_cond);