Commit 64410e59 authored by Alex Villacís Lasso's avatar Alex Villacís Lasso Committed by Alexandre Julliard

oleaut32: typelib - fix regression in MSFT typelib parsing.

parent 6bf97313
...@@ -1173,7 +1173,7 @@ static void dump_TLBFuncDescOne(const TLBFuncDesc * pfd) ...@@ -1173,7 +1173,7 @@ static void dump_TLBFuncDescOne(const TLBFuncDesc * pfd)
dump_FUNCDESC(&(pfd->funcdesc)); dump_FUNCDESC(&(pfd->funcdesc));
MESSAGE("\thelpstring: %s\n", debugstr_w(pfd->HelpString)); MESSAGE("\thelpstring: %s\n", debugstr_w(pfd->HelpString));
MESSAGE("\tentry: %s\n", debugstr_w(pfd->Entry)); MESSAGE("\tentry: %s\n", (pfd->Entry == (void *)-1) ? "invalid" : debugstr_w(pfd->Entry));
} }
static void dump_TLBFuncDesc(const TLBFuncDesc * pfd) static void dump_TLBFuncDesc(const TLBFuncDesc * pfd)
{ {
...@@ -1813,7 +1813,9 @@ MSFT_DoFuncs(TLBContext* pcx, ...@@ -1813,7 +1813,9 @@ MSFT_DoFuncs(TLBContext* pcx,
{ {
if ( pFuncRec->FKCCIC & 0x2000 ) if ( pFuncRec->FKCCIC & 0x2000 )
{ {
(*pptfd)->Entry = SysAllocString((WCHAR*)pFuncRec->OptAttr[2]); if (HIWORD(pFuncRec->OptAttr[2]) != 0)
ERR("ordinal 0x%08x invalid, HIWORD != 0\n", pFuncRec->OptAttr[2]);
(*pptfd)->Entry = (BSTR)pFuncRec->OptAttr[2];
} }
else else
{ {
...@@ -1832,6 +1834,10 @@ MSFT_DoFuncs(TLBContext* pcx, ...@@ -1832,6 +1834,10 @@ MSFT_DoFuncs(TLBContext* pcx,
} }
} }
} }
else
{
(*pptfd)->Entry = (BSTR)-1;
}
} }
} }
...@@ -4437,7 +4443,8 @@ static ULONG WINAPI ITypeInfo_fnRelease(ITypeInfo2 *iface) ...@@ -4437,7 +4443,8 @@ static ULONG WINAPI ITypeInfo_fnRelease(ITypeInfo2 *iface)
pCustDataNext = pCustData->next; pCustDataNext = pCustData->next;
TLB_Free(pCustData); TLB_Free(pCustData);
} }
SysFreeString(pFInfo->Entry); if (HIWORD(pFInfo->Entry) != 0 && pFInfo->Entry != (BSTR)-1)
SysFreeString(pFInfo->Entry);
SysFreeString(pFInfo->HelpString); SysFreeString(pFInfo->HelpString);
SysFreeString(pFInfo->Name); SysFreeString(pFInfo->Name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment