summaryrefslogtreecommitdiff
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
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.
-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);