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

Dmitry Timoshkov dmitry at baikal.ru
Tue Oct 27 02:39:56 CDT 2015


Nikolay Sivov <bunglehead at gmail.com> 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.

Then ctl2_find_guid() shouldn't return same offset for different guids.

-- 
Dmitry.



More information about the wine-devel mailing list