}
}
+static void
+tp_call_invalidated_cb (TpProxy *stream_engine,
+ GQuark domain,
+ gint code,
+ gchar *message,
+ EmpathyTpCall *call)
+{
+ empathy_debug (DEBUG_DOMAIN, "Stream engine proxy invalidated: %s",
+ message);
+ empathy_tp_call_close_channel (call);
+}
+
static void
tp_call_channel_closed_cb (TpChan *channel,
EmpathyTpCall *call)
G_CALLBACK (tp_call_stream_added_cb), call);
dbus_g_proxy_disconnect_signal (streamed_iface, "StreamRemoved",
G_CALLBACK (tp_call_stream_removed_cb), call);
+
+ if (priv->stream_engine)
+ {
+ g_signal_handlers_disconnect_by_func (priv->stream_engine,
+ tp_call_invalidated_cb, call);
+ g_object_unref (priv->stream_engine);
+ priv->stream_engine = NULL;
+ }
}
static void
}
}
-static void
-tp_call_invalidated_cb (TpProxy *stream_engine,
- GQuark domain,
- gint code,
- gchar *message,
- EmpathyTpCall *call)
-{
- empathy_debug (DEBUG_DOMAIN, "Stream engine proxy invalidated: %s",
- message);
- empathy_tp_call_close_channel (call);
-}
-
static void
tp_call_watch_name_owner_cb (TpDBusDaemon *daemon,
const gchar *name,