diff libpurple/blist.c @ 26620:2b7604ede0e4

Change purple_blist_get_buddies to return a list instead of the hash table. Closes #8644.
author Paul Aurich <paul@darkrain42.org>
date Sat, 11 Apr 2009 17:41:10 +0000
parents 9a2e4aebfa91
children d68b338d9eed
line wrap: on
line diff
--- a/libpurple/blist.c	Sat Apr 11 02:55:46 2009 +0000
+++ b/libpurple/blist.c	Sat Apr 11 17:41:10 2009 +0000
@@ -699,10 +699,23 @@
 	return purplebuddylist ? purplebuddylist->root : NULL;
 }
 
-GHashTable *
+static void
+append_buddy(gpointer key, gpointer value, gpointer user_data)
+{
+	GSList **list = user_data;
+	*list = g_slist_prepend(*list, value);
+}
+
+GSList *
 purple_blist_get_buddies()
 {
-	return purplebuddylist ? purplebuddylist->buddies : NULL;
+	GSList *buddies = NULL;
+
+	if (!purplebuddylist)
+		return NULL;
+
+	g_hash_table_foreach(purplebuddylist->buddies, append_buddy, &buddies);
+	return buddies;
 }
 
 void *