Module: wine Branch: master Commit: 736beff9c69923b8616767f9a825cd45ec77d584 URL: http://source.winehq.org/git/wine.git/?a=commit;h=736beff9c69923b8616767f9a8...
Author: Sebastian Lackner sebastian@fds-team.de Date: Sat Oct 31 14:31:26 2015 +0800
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
---
tools/widl/write_msft.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index fc0eae7..98081f2 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -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;