[2/6] widl: Ignore assigment of a duplicate uuid.

Nikolay Sivov bunglehead at gmail.com
Tue Oct 27 02:29:01 CDT 2015

On 27.10.2015 10:08, Dmitry Timoshkov wrote:
> Alexandre Julliard <julliard at winehq.org> wrote:
>>>> ../../tools/widl/widl -o msxml3_v1_t.res -m32 -I. -I../../include -I/usr/include/libxml2 -D__WINESRC__ \
>>>>    msxml3_v1.idl
>>>> warning: duplicate uuid {50ea08b4-dd1b-4664-9a50-c2f40f4bd79a}
>>>> (plus the same warnings in other msxml* directories).
>>>> This is ISchema.  Not sure why this is happening.
>>> The warning is emitted because the hash keys returned by ctl2_hash_guid()
>>> for IXMLDOMSchemaCollection2 (50ea08b0-dd1b-4664-9a50-c2f40f4bd79a) and
>>> ISchema (50ea08b4-dd1b-4664-9a50-c2f40f4bd79a) are the same. It seems to
>>> me a bit inadequate that ctl2_hash_guid() does 'return hash & 0x1f'. But
>>> I think that fixing this problem is outside of the scope of my patches
>>> and deserves a separate investigation.
>> If a hash collision triggers a warning that would definitely be a bug in
>> your code, but I don't think that's the reason here.
> Do you have an idea what might be a reason of the collision?

Collision on its own is not a problem. ctl2_hash_guid() returns index, 
not a hash value, and GUID hash segment size is fixed to 0x80 (0x80 / 
0x1f = sizeof(int)), so masking with 0x1f is adequate.

More information about the wine-devel mailing list