]> git.0d.be Git - empathy.git/commitdiff
Don't close channels as a side-effect of disposing wrapper objects
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Fri, 9 Jan 2009 16:15:10 +0000 (16:15 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 9 Jan 2009 16:15:10 +0000 (16:15 +0000)
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
svn path=/trunk/; revision=2183

libempathy/empathy-tp-call.c
libempathy/empathy-tp-chat.c
libempathy/empathy-tp-file.c

index 22c86232a28ca8847502bb9af5c95b0e714f8a23..65c09ce65e8da00326ab221b020f4e9b56e14183 100644 (file)
@@ -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)
index 6f55c6ba5b98b07b111597877c5df0c257ffefd1..57e3277ebe51500cd42ed62e6e661a616196508b 100644 (file)
@@ -896,7 +896,12 @@ tp_chat_dispose (GObject *object)
        priv->dispose_has_run = TRUE;
 
        if (priv->channel != NULL)
-               empathy_tp_chat_close (self);
+               {
+                       g_signal_handlers_disconnect_by_func (priv->channel,
+                               tp_chat_invalidated_cb, self);
+                       g_object_unref (priv->channel);
+                       priv->channel = NULL;
+               }
 
        if (priv->remote_contact != NULL)
                g_object_unref (priv->remote_contact);
index 25f93713c1e9af6cae1ea1ce427dc57b8978fa76..ccbc856a1e726be7300a20edb77c53e6f705ce94 100644 (file)
@@ -352,12 +352,10 @@ tp_file_finalize (GObject *object)
 
   if (tp_file->priv->channel)
     {
-      DEBUG ("Closing channel..");
       g_signal_handlers_disconnect_by_func (tp_file->priv->channel,
           tp_file_invalidated_cb, object);
-      tp_cli_channel_call_close (tp_file->priv->channel, -1, NULL, NULL,
-          NULL, NULL);
       g_object_unref (tp_file->priv->channel);
+      tp_file->priv->channel = NULL;
     }
 
   if (tp_file->priv->factory)
@@ -913,6 +911,7 @@ empathy_tp_file_cancel (EmpathyTpFile *tp_file)
 {
   g_return_if_fail (EMPATHY_IS_TP_FILE (tp_file));
 
+  DEBUG ("Closing channel..");
   tp_cli_channel_call_close (tp_file->priv->channel, -1,
     NULL, NULL, NULL, NULL);