From: Fabian Maurer dark.shadow4@web.de
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55123 --- tools/widl/client.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/tools/widl/client.c b/tools/widl/client.c index 704be91cb78..db17d07787b 100644 --- a/tools/widl/client.c +++ b/tools/widl/client.c @@ -440,6 +440,9 @@ static void write_clientinterfacedecl(type_t *iface) const struct uuid *uuid = get_attrp(iface->attrs, ATTR_UUID); const str_list_t *endpoints = get_attrp(iface->attrs, ATTR_ENDPOINT);
+ if (!uuid) + error_at( &iface->where, "cannot write client interface, no uuid found for interface %s.\n", iface->name ); + if (endpoints) write_endpoints( client, iface->name, endpoints );
print_client("static const RPC_CLIENT_INTERFACE %s___RpcClientInterface =\n", iface->name );
Rémi Bernon (@rbernon) commented about tools/widl/client.c:
const struct uuid *uuid = get_attrp(iface->attrs, ATTR_UUID); const str_list_t *endpoints = get_attrp(iface->attrs, ATTR_ENDPOINT);
- if (!uuid)
error_at( &iface->where, "cannot write client interface, no uuid found for interface %s.\n", iface->name );
I think it'd be better to do that in parser.y `check_functions`. You'd there check that either the `[local]` or `[uuid]` attributes are set, because local interfaces are apparently allowed to not have one.