diff options
author | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2009-08-21 21:15:53 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2009-08-24 20:36:56 -0400 |
commit | c72b47babdd916adf99933e58dda66547d2b8088 (patch) | |
tree | 28031a9760c06a525089cf2cee08741a4c61534c | |
parent | 10c670d12ba9de8f816cce8eb467fdd7ab3adb17 (diff) |
Free session when its proxy is invalidated
-rw-r--r-- | telepathy-farsight/channel.c | 5 |
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 |