summaryrefslogtreecommitdiff
path: root/gst
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
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')
-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);