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