Wireshark-dev: Re: [Wireshark-dev] The RSVD dissector and 32-bit builds ...
From: Pascal Quantin <pascal.quantin@xxxxxxxxx>
Date: Mon, 16 Feb 2015 16:54:49 +0100


2015-02-16 16:48 GMT+01:00 Richard Sharpe <realrichardsharpe@xxxxxxxxx>:
On Mon, Feb 16, 2015 at 7:11 AM, Evan Huus <eapache@xxxxxxxxx> wrote:
> On Mon, Feb 16, 2015 at 10:08 AM, Richard Sharpe
> <realrichardsharpe@xxxxxxxxx> wrote:
>> On Mon, Feb 16, 2015 at 6:55 AM, Evan Huus <eapache@xxxxxxxxx> wrote:
>>> Create the wmem_map using g_int64_equal instead of g_direct_equal and
>>> wmem_int64_hash instead of g_direct_hash. Create a wmem_file_scope()
>>> copy of the key, and pass the resulting pointer to the insert
>>> function.
>>
>> Hmmm, why do we need a wmem_file_scope() copy of the key? We get the
>> key in each request and response and I don't store the key anywhere.
>
> The map itself has to store the key in order to use it for future
> lookups. When the key is only 32 bits you can make the pointer itself
> store the key, and since the pointer gets copied you don't need an
> explicit copy of the key. But when the pointer is just a pointer, you
> need a file-scope copy of the key.

With a few small changes things still seem to work. I will add a few
more people as reviewers when I push the change.

Hi,

for reference you can see a use of wmem_int64_hash / g_int64_equal in packet-mbim.c

Regards,
Pascal.