The same entries can have a different call_as between the synchronous and asynchronous interfaces and shouldn't be mixed up. --- tools/widl/header.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c index 223ab5c5ca9..e6de236a25f 100644 --- a/tools/widl/header.c +++ b/tools/widl/header.c @@ -1614,7 +1614,8 @@ static void write_com_interface_end(FILE *header, type_t *iface) if (!dispinterface && !winrt_mode) { write_method_proto(header, iface); - write_locals(header, iface, FALSE); + if (type_iface_get_async_iface(iface) != iface) + write_locals(header, iface, FALSE); fprintf(header, "\n"); } fprintf(header, "#endif /* __%s_%sINTERFACE_DEFINED__ */\n", iface->c_name, dispinterface ? "DISP" : "");
On 16.12.2020 15:38, Steve Lhomme wrote:
The same entries can have a different call_as between the synchronous and asynchronous interfaces and shouldn't be mixed up.
Looking closer at it, I think that we shouldn't apply call_as methods to async interfaces in the first place. Sorry for not catching it earlier, I sent a patch:
https://source.winehq.org/patches/data/197632
Thanks,
Jacek