Module: wine Branch: master Commit: 42c328ddf4b12e556ef95853cda6d5fa0328f39d URL: http://source.winehq.org/git/wine.git/?a=commit;h=42c328ddf4b12e556ef95853cd...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Tue Nov 3 13:32:22 2015 +0800
widl: Ignore assignment of a duplicate uuid.
MSDN KB285146 article describes this behaviour, and the tests confirm that.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
tools/widl/write_msft.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 3cbae92..7396944 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -494,10 +494,22 @@ static int ctl2_alloc_guid( MSFT_GuidEntry *guid_space; int hash_key;
+ chat("adding uuid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n", + guid->guid.Data1, guid->guid.Data2, guid->guid.Data3, + guid->guid.Data4[0], guid->guid.Data4[1], guid->guid.Data4[2], guid->guid.Data4[3], + guid->guid.Data4[4], guid->guid.Data4[5], guid->guid.Data4[6], guid->guid.Data4[7]); + hash_key = ctl2_hash_guid(&guid->guid);
offset = ctl2_find_guid(typelib, hash_key, &guid->guid); - if (offset != -1) return offset; + if (offset != -1) + { + warning("duplicate uuid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n", + guid->guid.Data1, guid->guid.Data2, guid->guid.Data3, + guid->guid.Data4[0], guid->guid.Data4[1], guid->guid.Data4[2], guid->guid.Data4[3], + guid->guid.Data4[4], guid->guid.Data4[5], guid->guid.Data4[6], guid->guid.Data4[7]); + return -1; + }
offset = ctl2_alloc_segment(typelib, MSFT_SEG_GUID, sizeof(MSFT_GuidEntry), 0);