[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