Le 27/01/2011 16:24, Marcel Holtmann a écrit : > Hi Fred, > >>>> plugins/bluetooth.c | 86 +++++++++++++++++++++++++++++++++++++++++++------- >>>> 1 files changed, 74 insertions(+), 12 deletions(-) >>>> >>>> diff --git a/plugins/bluetooth.c b/plugins/bluetooth.c >>>> index e59bd31..4da662a 100644 >>>> --- a/plugins/bluetooth.c >>>> +++ b/plugins/bluetooth.c >>>> @@ -39,9 +39,14 @@ >>>> >>>> static DBusConnection *connection; >>>> static GHashTable *uuid_hash = NULL; >>>> -static GHashTable *adapter_address_hash = NULL; >>>> +static GSList *adapter_list = NULL; >>>> static gint bluetooth_refcount; >>>> >>>> +struct adapter_address { >>>> + char *adapter; >>>> + char *address; >>>> +}; >>>> + >>> >>> why are we doing this exactly with a list now instead of a hash table. I >>> don't see the point here. >>> >> >> In patch 4, I need to find the adapter path (for the incoming >> connection) from its address to call the authorization method. >> >> So, this is why I change to GSList. > > you can as easily walk a GHashTable than you can walk a GSList. So why > not do that instead of moving everything to a list. I think that find a key from its value may use more cpu from HashTable than from GSList. If you want I can remove this and only use HashTable. -- Frederic Danis Open Source Technology Centre frederic.danis(a)intel.com Intel Corporation