This allows searching exact property access functions which share same memberid.
Signed-off-by: porotmjp porotmjp@gmail.com --- dlls/oleaut32/typelib.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index f8d7136..48de363 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -1701,6 +1701,19 @@ static inline TLBFuncDesc *TLB_get_funcdesc_by_memberid(ITypeInfoImpl *typeinfo, return NULL; }
+static inline TLBFuncDesc *TLB_get_funcdesc_by_memberid_invkind(ITypeInfoImpl *typeinfo, MEMBERID memid, INVOKEKIND invKind) +{ + int i; + + for (i = 0; i < typeinfo->typeattr.cFuncs; ++i) + { + if (typeinfo->funcdescs[i].funcdesc.memid == memid && typeinfo->funcdescs[i].funcdesc.invkind == invKind) + return &typeinfo->funcdescs[i]; + } + + return NULL; +} + static inline TLBVarDesc *TLB_get_vardesc_by_memberid(ITypeInfoImpl *typeinfo, MEMBERID memid) { int i; @@ -7804,7 +7817,7 @@ static HRESULT WINAPI ITypeInfo_fnGetDllEntry( ITypeInfo2 *iface, MEMBERID memid if (This->typeattr.typekind != TKIND_MODULE) return TYPE_E_BADMODULEKIND;
- pFDesc = TLB_get_funcdesc_by_memberid(This, memid); + pFDesc = TLB_get_funcdesc_by_memberid_invkind(This, memid, invKind); if(pFDesc){ dump_TypeInfo(This); if (TRACE_ON(ole))
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=72231
Your paranoid android.
=== debiant (build log) ===
error: corrupt patch at line 14 Task: Patch failed to apply
=== debiant (build log) ===
error: corrupt patch at line 14 Task: Patch failed to apply
I can not make git send-email work, so I paste the patch in my Web Gmail and send it. This may result the error, I will try send the patch as an attachment