diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-08-18 15:30:05 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-08-18 15:31:10 -0400 |
commit | 5f2a2dd6fc5869689d6bdb72b1ddfb91cd1aa138 (patch) | |
tree | 45480d3b0dac99acd214ee8a466812f57247913d | |
parent | 489c8e1c791a172477d0f7ac7a165f4260203cf9 (diff) | |
download | libnice-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.
-rw-r--r-- | gst/gstnicesink.c | 7 |
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); |