]> git.0d.be Git - empathy.git/commitdiff
Fix crash when there is no log available for a chat. Fix a crash when
authorXavier Claessens <xclaesse@gmail.com>
Sat, 2 Jun 2007 18:03:38 +0000 (18:03 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Sat, 2 Jun 2007 18:03:38 +0000 (18:03 +0000)
2007-06-02  Xavier Claessens  <xclaesse@gmail.com>

* libempathy/empathy-log-manager.c: Fix crash when there is no log
available for a chat.
* libempathy/empathy-tp-contact-list.c: Fix a crash when destroy signal
is emitted before StatusChanged.

svn path=/trunk/; revision=115

ChangeLog
libempathy-gtk/gossip-chat.c
libempathy/empathy-log-manager.c
libempathy/empathy-tp-contact-list.c

index 24f684f83ad9ceada2a0d8a83408be24a6497485..ff37310d6056c636b7ca40bd66d882a6088237c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-06-02  Xavier Claessens  <xclaesse@gmail.com>
+
+       * libempathy/empathy-log-manager.c: Fix crash when there is no log
+       available for a chat.
+       * libempathy/empathy-tp-contact-list.c: Fix a crash when destroy signal
+       is emitted before StatusChanged.
+
 2007-06-02  Xavier Claessens  <xclaesse@gmail.com>
 
        * libempathy-gtk/gossip-group-chat.c:
index 677cdd258d99381948790546a74c9c0615158792..37da0853c5a4f9720c2893d159c6918c2f360b35 100644 (file)
@@ -1314,7 +1314,6 @@ gossip_chat_set_tp_chat (GossipChat    *chat,
                priv->first_tp_chat = FALSE;
        }
 
-
        g_signal_connect (tp_chat, "message-received",
                          G_CALLBACK (chat_message_received_cb),
                          chat);
index 68e20c8da685379a25d0f6c713423fbc5bf8666e..ca5297ea723aa90f2da8f8c70b59d63eb36151f7 100644 (file)
@@ -331,7 +331,7 @@ empathy_log_manager_get_last_messages (EmpathyLogManager *manager,
                                       McAccount         *account,
                                       const gchar       *chat_id)
 {
-       GList *messages;
+       GList *messages = NULL;
        GList *dates;
        GList *l;
 
@@ -342,10 +342,12 @@ empathy_log_manager_get_last_messages (EmpathyLogManager *manager,
        dates = empathy_log_manager_get_dates (manager, account, chat_id);
 
        l = g_list_last (dates);
-       messages = empathy_log_manager_get_messages_for_date (manager,
-                                                             account,
-                                                             chat_id,
-                                                             l->data);
+       if (l) {
+               messages = empathy_log_manager_get_messages_for_date (manager,
+                                                                     account,
+                                                                     chat_id,
+                                                                     l->data);
+       }
 
        g_list_foreach (dates, (GFunc) g_free, NULL);
        g_list_free (dates);
index 760ee013b3169d9eb53d63a2c5ed62807803430d..7668057e74a0aa8c480741d406237d907e7aaf08 100644 (file)
@@ -1845,7 +1845,8 @@ tp_contact_list_status_changed_cb (MissionControl                  *mc,
 
        account = mc_account_lookup (unique_name);
        if (status != TP_CONN_STATUS_DISCONNECTED ||
-           !gossip_account_equal (account, priv->account)) {
+           !gossip_account_equal (account, priv->account) ||
+           !priv->tp_conn) {
                g_object_unref (account);
                return;
        }