aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-tp-call.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy/empathy-tp-call.c')
-rw-r--r--libempathy/empathy-tp-call.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/libempathy/empathy-tp-call.c b/libempathy/empathy-tp-call.c
index 22c86232a..65c09ce65 100644
--- a/libempathy/empathy-tp-call.c
+++ b/libempathy/empathy-tp-call.c
@@ -478,7 +478,7 @@ tp_call_constructor (GType type,
return object;
}
-static void
+static void
tp_call_finalize (GObject *object)
{
EmpathyTpCallPriv *priv = GET_PRIV (object);
@@ -489,9 +489,18 @@ tp_call_finalize (GObject *object)
g_slice_free (EmpathyTpCallStream, priv->video);
g_object_unref (priv->group);
+ if (priv->group != NULL)
+ g_object_unref (priv->group);
+
+ priv->group = NULL;
+
if (priv->channel != NULL)
{
- empathy_tp_call_close (EMPATHY_TP_CALL (object));
+ g_signal_handlers_disconnect_by_func (priv->channel,
+ tp_call_channel_invalidated_cb, object);
+
+ g_object_unref (priv->channel);
+ priv->channel = NULL;
}
if (priv->stream_engine != NULL)