Dmitry Timoshkov : widl: Ignore assignment of a duplicate uuid.
Module: wine Branch: master Commit: 42c328ddf4b12e556ef95853cda6d5fa0328f39d URL: http://source.winehq.org/git/wine.git/?a=commit;h=42c328ddf4b12e556ef95853cd... Author: Dmitry Timoshkov <dmitry(a)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(a)baikal.ru> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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);
participants (1)
-
Alexandre Julliard