>>> <
steve@xxxxxxxxxxxxxxxxxx <mailto:
steve@xxxxxxxxxxxxxxxxxx>> wrote:
>>>
>>> On Fri, Apr 23, 2010 at 02:42:35PM +0530, ankur madan wrote:
>>>
>>> > packet-ieee802154.c(982) : warning C4244: '=' : conversion from
>>> > 'guint64' to 'gu int32', possible loss of data
>>>
>>> I see that you're compiling on Windows, but which version and
>>> is it
>>> 32-bit or 64-bit?
>>>
>>>
>> Personally I'm just carrying fixes to this in my local source tree as
>> I haven't had time to push a patch back into the repo. I don't know
>> why this compiles OK on the buildbot and not with VC8.
>>
>> IMHO the current code is incorrect as it incorrectly casts a 32 bit
>> value to a 64 bit one and then calls proto_tree_add_uint64 with it
>> when the value really is a 32 bit one (lines 981-985):
>>
>> if (packet->key_id_mode == KEY_ID_MODE_KEY_EXPLICIT_4) {
>> packet->key_source.addr32 = tvb_get_ntohl(tvb, offset);
>> proto_tree_add_uint64(field_tree,
>> hf_ieee802154_aux_sec_key_source, tvb, offset, 4,
>> packet->key_source.addr32);
>> proto_item_set_len(ti, 1 + 4);
>> offset += sizeof (guint32);
>>
>> and the other errors simply need a cast to gchar to allow them to
>> compile (lines 2006 - 2013).
>>
>> I've attached a patch that works for me.
>>
> Oops. Compile before posting, the last second change to
> proto_tree_add_uint64 should have been to proto_tree_add_uint.
> Corrected patch supplied.
>
> Also note that if you are using VC8 you may run into other compilation
> or run-time issues. I strongly recommend you grab a copy of the VS 2008
> Express edition or even the 2010 version if you want to live at the
> bleeding edge.