/pidgin/main: bedba98d98f2: Change this comment to say that we s...

Mark Doliner mark at kingant.net
Thu Jan 9 02:23:23 EST 2014

Changeset: bedba98d98f2ac12f7f56a5a35e196240b30f980
Author:	 Mark Doliner <mark at kingant.net>
Date:	 2014-01-08 23:23 -0800
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/bedba98d98f2


Change this comment to say that we should use a single, good-enough data
structure rather than duplicate the data in both a hash table and a linked

This mattered a lot at Meebo where we ran many sessions on few CPUs.
It matters less for normal users... but that shouldn't stop us from making
this better.


 libpurple/account.c |  13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diffs (23 lines):

diff --git a/libpurple/account.c b/libpurple/account.c
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -70,13 +70,12 @@ typedef struct
 								/*   proxy settings from global prefs.      */
-	 * TODO: Supplementing the next two linked lists with hash tables
-	 * should help performance a lot when these lists are long.  This
-	 * matters quite a bit for protocols like MSN, where all your
-	 * buddies are added to your permit list.  Currently we have to
-	 * iterate through the entire list if we want to check if someone
-	 * is permitted or denied.  We should do this for 3.0.0.
-	 * Or maybe use a GTree.
+	 * TODO: Instead of linked lists for permit and deny, use a data
+	 * structure that allows fast lookups AND decent performance when
+	 * iterating through all items. Fast lookups should help performance
+	 * for protocols like MSN, where all your buddies exist in your permit
+	 * list therefore the permit list is large. Possibly GTree or
+	 * GHashTable.
 	GSList *permit;             /**< Permit list.                           */
 	GSList *deny;               /**< Deny list.                             */

More information about the Commits mailing list