widl: When adding an interface typedef do check whether it has been already added while resolving the parent interface.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Sebastian Lackner 2015-10-31 14:31:26 +08:00 committed by Alexandre Julliard
parent a3f943f03f
commit 736beff9c6
1 changed files with 4 additions and 0 deletions

View File

@ -2078,6 +2078,10 @@ static void add_interface_typeinfo(msft_typelib_t *typelib, type_t *interface)
add_interface_typeinfo(typelib, inherit);
}
/* check typelib_idx again, it could have been added while resolving the parent interface */
if (-1 < interface->typelib_idx)
return;
interface->typelib_idx = typelib->typelib_header.nrtypeinfos;
msft_typeinfo = create_msft_typeinfo(typelib, TKIND_INTERFACE, interface->name, interface->attrs);
msft_typeinfo->typeinfo->size = pointer_size;