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

Dmitry Timoshkov dmitry at baikal.ru
Tue Oct 27 04:48:11 CDT 2015


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.
> >
> > Then ctl2_find_guid() shouldn't return same offset for different guids.
> 
> It doesn't. That's not where the bug is.

Probably I'm missing something obvious, but I couldn't figure out the reason
of an attempt of creation a duplicate uuid entry.

-- 
Dmitry.



More information about the wine-devel mailing list