[3/7] widl: Ignore assignment of a duplicate uuid. Resend.
Huw Davies
huw at codeweavers.com
Mon Nov 2 03:55:11 CST 2015
On Sat, Oct 31, 2015 at 02:31:38PM +0800, Dmitry Timoshkov wrote:
> diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
> index daa0366..dc8b124 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);
This still has problems. For example see the idl below.
Also note that this is the cause of the warnings in httpresquest.idl .
Huw.
import "objidl.idl";
[uuid(12345678-0000-0000-0000-000000000000)]
library foo
{
typedef [uuid(12345678-9ab0-0000-0000-000000000000)] struct f {int x;} f;
[uuid(12345678-9abc-0000-0000-000000000000)]
interface IMy : IUnknown
{
HRESULT foo([in]f *ptr);
}
}
More information about the wine-devel
mailing list