summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-08-21 21:15:53 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-08-24 20:36:56 -0400
commitc72b47babdd916adf99933e58dda66547d2b8088 (patch)
tree28031a9760c06a525089cf2cee08741a4c61534c
parent10c670d12ba9de8f816cce8eb467fdd7ab3adb17 (diff)
Free session when its proxy is invalidated
-rw-r--r--telepathy-farsight/channel.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/telepathy-farsight/channel.c b/telepathy-farsight/channel.c
index 85b804c..1d3621d 100644
--- a/telepathy-farsight/channel.c
+++ b/telepathy-farsight/channel.c
@@ -743,6 +743,8 @@ session_invalidated_cb (TfSession *session, gpointer user_data)
FsConference *conf = NULL;
FsParticipant *part = NULL;
+ g_signal_handlers_disconnect_by_func (session, new_stream_cb, self);
+
g_object_get (session,
"farsight-conference", &conf,
"farsight-participant", &part,
@@ -752,6 +754,9 @@ session_invalidated_cb (TfSession *session, gpointer user_data)
g_object_unref (conf);
g_object_unref (part);
+
+ g_object_unref (session);
+ g_ptr_array_remove_fast (self->priv->sessions, session);
}
static void