forked from Mirrors/wine-wine
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
parent
5b6bf621cd
commit
6c64d02117
|
@ -497,6 +497,7 @@ struct _importinfo_t {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _importlib_t {
|
struct _importlib_t {
|
||||||
|
int offset;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
int version;
|
int version;
|
||||||
|
|
|
@ -702,15 +702,15 @@ static void alloc_importinfo(msft_typelib_t *typelib, importinfo_t *importinfo)
|
||||||
|
|
||||||
guid_idx = ctl2_alloc_guid(typelib, &guid);
|
guid_idx = ctl2_alloc_guid(typelib, &guid);
|
||||||
|
|
||||||
alloc_importfile(typelib, guid_idx, importlib->version&0xffff,
|
importlib->offset = alloc_importfile(typelib, guid_idx, importlib->version & 0xffff,
|
||||||
importlib->version>>16, importlib->name);
|
importlib->version >> 16, importlib->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(importinfo->offset == -1 || !(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID)) {
|
if(importinfo->offset == -1 || !(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID)) {
|
||||||
MSFT_ImpInfo impinfo;
|
MSFT_ImpInfo impinfo;
|
||||||
|
|
||||||
impinfo.flags = importinfo->flags;
|
impinfo.flags = importinfo->flags;
|
||||||
impinfo.oImpFile = 0;
|
impinfo.oImpFile = importlib->offset;
|
||||||
|
|
||||||
if(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID) {
|
if(importinfo->flags & MSFT_IMPINFO_OFFSET_IS_GUID) {
|
||||||
MSFT_GuidEntry guid;
|
MSFT_GuidEntry guid;
|
||||||
|
|
Loading…
Reference in New Issue