widl: Correctly set the import library offset for all imported types.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47031
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Zebediah Figura 2019-04-17 00:14:55 -05:00 committed by Alexandre Julliard
parent 5b6bf621cd
commit 6c64d02117
2 changed files with 4 additions and 3 deletions

View File

@ -497,6 +497,7 @@ struct _importinfo_t {
};
struct _importlib_t {
int offset;
char *name;
int version;

View File

@ -702,15 +702,15 @@ static void alloc_importinfo(msft_typelib_t *typelib, importinfo_t *importinfo)
guid_idx = ctl2_alloc_guid(typelib, &guid);
alloc_importfile(typelib, guid_idx, importlib->version&0xffff,
importlib->version>>16, importlib->name);
importlib->offset = alloc_importfile(typelib, guid_idx, importlib->version & 0xffff,
importlib->version >> 16, importlib->name);
}
if(importinfo->offset == -1 || !(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID)) {
MSFT_ImpInfo impinfo;
impinfo.flags = importinfo->flags;
impinfo.oImpFile = 0;
impinfo.oImpFile = importlib->offset;
if(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID) {
MSFT_GuidEntry guid;