Do not try to update a buddy in the buddylist when there's no buddylist.

Wed, 29 Aug 2007 23:43:36 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Wed, 29 Aug 2007 23:43:36 +0000
changeset 19701
d5c5982757d5
parent 19698
ce35e72ca972
child 19702
881abb160b70
child 19717
bfc9d0446b60

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.

pidgin/gtkblist.c file | annotate | diff | comparison | revisions
--- a/pidgin/gtkblist.c	Wed Aug 29 20:28:35 2007 +0000
+++ b/pidgin/gtkblist.c	Wed Aug 29 23:43:36 2007 +0000
@@ -125,7 +125,7 @@
 static PidginBuddyList *gtkblist = NULL;
 
 static gboolean pidgin_blist_refresh_timer(PurpleBuddyList *list);
-static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean statusChange);
+static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change);
 static void pidgin_blist_selection_changed(GtkTreeSelection *selection, gpointer data);
 static void pidgin_blist_update(PurpleBuddyList *list, PurpleBlistNode *node);
 static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node);
@@ -614,6 +614,8 @@
 static void
 pidgin_blist_update_privacy_cb(PurpleBuddy *buddy)
 {
+	if (buddy->node.ui_data == NULL || ((struct _pidgin_blist_node*)buddy->node.ui_data)->row == NULL)
+		return;
 	pidgin_blist_update_buddy(purple_get_blist(), (PurpleBlistNode*)(buddy), TRUE);
 }
 
@@ -5158,7 +5160,7 @@
 
 
 
-static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean statusChange)
+static void pidgin_blist_update_buddy(PurpleBuddyList *list, PurpleBlistNode *node, gboolean status_change)
 {
 	PurpleBuddy *buddy;
 	struct _pidgin_blist_node *gtkparentnode;

mercurial