oleaut32: Return early if there is no matching funcdesc.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Huw Davies 2020-06-11 09:03:06 +01:00 committed by Alexandre Julliard
parent 0a90d0431d
commit e9eb274db2
1 changed files with 16 additions and 20 deletions

View File

@ -7805,28 +7805,24 @@ static HRESULT WINAPI ITypeInfo_fnGetDllEntry( ITypeInfo2 *iface, MEMBERID memid
return TYPE_E_BADMODULEKIND;
pFDesc = TLB_get_funcdesc_by_memberid(This, memid);
if(pFDesc){
dump_TypeInfo(This);
if (TRACE_ON(ole))
dump_TLBFuncDescOne(pFDesc);
if (!pFDesc) return TYPE_E_ELEMENTNOTFOUND;
if (pBstrDllName)
*pBstrDllName = SysAllocString(TLB_get_bstr(This->DllName));
dump_TypeInfo(This);
if (TRACE_ON(ole)) dump_TLBFuncDescOne(pFDesc);
if (!IS_INTRESOURCE(pFDesc->Entry) && (pFDesc->Entry != (void*)-1)) {
if (pBstrName)
*pBstrName = SysAllocString(TLB_get_bstr(pFDesc->Entry));
if (pwOrdinal)
*pwOrdinal = -1;
return S_OK;
}
if (pBstrName)
*pBstrName = NULL;
if (pwOrdinal)
*pwOrdinal = LOWORD(pFDesc->Entry);
return S_OK;
}
return TYPE_E_ELEMENTNOTFOUND;
if (pBstrDllName) *pBstrDllName = SysAllocString(TLB_get_bstr(This->DllName));
if (!IS_INTRESOURCE(pFDesc->Entry) && (pFDesc->Entry != (void*)-1))
{
if (pBstrName) *pBstrName = SysAllocString(TLB_get_bstr(pFDesc->Entry));
if (pwOrdinal) *pwOrdinal = -1;
}
else
{
if (pBstrName) *pBstrName = NULL;
if (pwOrdinal) *pwOrdinal = LOWORD(pFDesc->Entry);
}
return S_OK;
}
/* internal function to make the inherited interfaces' methods appear