empathy r826 - trunk/libempathy



Author: xclaesse
Date: Tue Mar 25 16:28:01 2008
New Revision: 826
URL: http://svn.gnome.org/viewvc/empathy?rev=826&view=rev

Log:
Disconnect invalidated signal when TpCall is finalized. Fixes bug #523766.


Modified:
   trunk/libempathy/empathy-tp-call.c

Modified: trunk/libempathy/empathy-tp-call.c
==============================================================================
--- trunk/libempathy/empathy-tp-call.c	(original)
+++ trunk/libempathy/empathy-tp-call.c	Tue Mar 25 16:28:01 2008
@@ -232,9 +232,13 @@
                         gchar         *message,
                         EmpathyTpCall *call)
 {
+  EmpathyTpCallPriv *priv = GET_PRIV (call);
+
   empathy_debug (DEBUG_DOMAIN, "Stream engine proxy invalidated: %s",
       message);
   empathy_tp_call_close_channel (call);
+  g_object_unref (priv->stream_engine);
+  priv->stream_engine = NULL;
 }
 
 static void
@@ -263,14 +267,6 @@
       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
@@ -651,7 +647,11 @@
     g_object_unref (priv->channel);
 
   if (priv->stream_engine != NULL)
-    g_object_unref (priv->stream_engine);
+    {
+      g_signal_handlers_disconnect_by_func (priv->stream_engine,
+          tp_call_invalidated_cb, object);
+      g_object_unref (priv->stream_engine);
+    }
 
   if (priv->contact != NULL)
       g_object_unref (priv->contact);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]