comparison pidgin/gtkblist.c @ 19538:6575ec8e1a97

Do not try to update a buddy in the buddylist when there's no buddylist. This fixes a crash EvilDennisR was getting. I was totally doubting him until he proved I was completely wrong.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 29 Aug 2007 23:43:36 +0000
parents 4da3c8618c24
children 712a448722b6
comparison
equal deleted inserted replaced
19535:7d9887c3ac81 19538:6575ec8e1a97
123 static void sort_method_log(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter); 123 static void sort_method_log(PurpleBlistNode *node, PurpleBuddyList *blist, GtkTreeIter groupiter, GtkTreeIter *cur, GtkTreeIter *iter);
124 #endif 124 #endif
125 static PidginBuddyList *gtkblist = NULL; 125 static PidginBuddyList *gtkblist = NULL;
126 126
127 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list); 127 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list);
128 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean statusChange); 128 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change);
129 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data); 129 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data);
130 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node); 130 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node);
131 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node); 131 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node);
132 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node); 132 static void pidgin_blist_update_contact(PurpleBuddyList *list, PurpleBlistNode *node);
133 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full); 133 static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full);
612 } 612 }
613 613
614 static void 614 static void
615 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy) 615 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy)
616 { 616 {
617 if (buddy->node.ui_data == NULL || ((struct _pidgin_blist_node*)buddy->node.ui_data)->row == NULL)
618 return;
617 pidgin_blist_update_buddy(purple_get_blist(), (PurpleBlistNode*)(buddy), TRUE); 619 pidgin_blist_update_buddy(purple_get_blist(), (PurpleBlistNode*)(buddy), TRUE);
618 } 620 }
619 621
620 static void 622 static void
621 rebuild_joinchat_entries(PidginJoinChatData *data) 623 rebuild_joinchat_entries(PidginJoinChatData *data)
5156 } 5158 }
5157 } 5159 }
5158 5160
5159 5161
5160 5162
5161 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean statusChange) 5163 static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change)
5162 { 5164 {
5163 PurpleBuddy *buddy; 5165 PurpleBuddy *buddy;
5164 struct _pidgin_blist_node *gtkparentnode; 5166 struct _pidgin_blist_node *gtkparentnode;
5165 5167
5166 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); 5168 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));