[PATCH v6 1/3] oleaut32: Return early if there is no matching funcdesc.
Signed-off-by: Huw Davies <huw(a)codeweavers.com> --- dlls/oleaut32/typelib.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index f8d71368345..ab421fec90d 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -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 (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; - return S_OK; - } - if (pBstrName) - *pBstrName = NULL; - if (pwOrdinal) - *pwOrdinal = LOWORD(pFDesc->Entry); - return S_OK; - } - return TYPE_E_ELEMENTNOTFOUND; + if (!pFDesc) return TYPE_E_ELEMENTNOTFOUND; + + dump_TypeInfo(This); + if (TRACE_ON(ole)) dump_TLBFuncDescOne(pFDesc); + + 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 -- 2.23.0
participants (1)
-
Huw Davies