pidgin/gtkconv.c

branch
soc.2013.gobjectification.plugins
changeset 37128
7ffe330ea8ea
parent 37125
5c997dd3ae29
parent 35639
7391a9c98a1d
child 37133
832cd077145e
--- a/pidgin/gtkconv.c	Fri Mar 14 19:30:31 2014 +0530
+++ b/pidgin/gtkconv.c	Mon Mar 31 07:25:15 2014 +0530
@@ -4551,16 +4551,18 @@
 		}
 		g_list_free(list);
 	} else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
-		GList *l = purple_chat_conversation_get_users(PURPLE_CHAT_CONVERSATION(conv));
+		GList *l, *users;
 		GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(PIDGIN_CONVERSATION(conv)->u.chat->list));
 		GtkTreeIter iter;
 		int f;
 
 		/* Users */
-		for (; l != NULL; l = l->next) {
+		users = purple_chat_conversation_get_users(PURPLE_CHAT_CONVERSATION(conv));
+		for (l = users; l != NULL; l = l->next) {
 			tab_complete_process_item(&most_matched, entered, entered_chars, &partial,
 									  &matches, purple_chat_user_get_name((PurpleChatUser *)l->data));
 		}
+		g_list_free(users);
 
 		/* Aliases */
 		if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter))
@@ -7028,7 +7030,7 @@
 	gtkconv = PIDGIN_CONVERSATION(PURPLE_CONVERSATION(chat));
 	gtkchat = gtkconv->u.chat;
 
-	num_users = g_list_length(purple_chat_conversation_get_users(chat));
+	num_users = purple_chat_conversation_get_users_count(chat);
 
 	g_snprintf(tmp, sizeof(tmp),
 			   ngettext("%d person in room", "%d people in room",
@@ -7114,7 +7116,7 @@
 	gtkconv = PIDGIN_CONVERSATION(PURPLE_CONVERSATION(chat));
 	gtkchat = gtkconv->u.chat;
 
-	num_users = g_list_length(purple_chat_conversation_get_users(chat));
+	num_users = purple_chat_conversation_get_users_count(chat);
 
 	for (l = users; l != NULL; l = l->next) {
 		model = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list));
@@ -8725,9 +8727,12 @@
 	}
 
 	if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
+		GList *users;
 		PurpleChatConversation *chat = PURPLE_CHAT_CONVERSATION(conv);
 		pidgin_conv_update_fields(conv, PIDGIN_CONV_TOPIC);
-		pidgin_conv_chat_add_users(chat, purple_chat_conversation_get_users(chat), TRUE);
+		users = purple_chat_conversation_get_users(chat);
+		pidgin_conv_chat_add_users(chat, users, TRUE);
+		g_list_free(users);
 	}
 
 	return TRUE;

mercurial