[Libreoffice-commits] core.git: extensions/source
Tor Lillqvist
tml at collabora.com
Wed Feb 21 13:01:11 UTC 2018
extensions/source/ole/unoobjw.cxx | 11 +++++++++++
1 file changed, 11 insertions(+)
New commits:
commit 3cd3d1044d03fdb733922bad74254f3ad65d898e
Author: Tor Lillqvist <tml at collabora.com>
Date: Thu Feb 8 21:57:22 2018 +0200
Pass missing (hopefully optional) parameters as Any()
Change-Id: I93e69e589cd81fbc9606b1b08233da7fb8f5d043
Reviewed-on: https://gerrit.libreoffice.org/50089
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Tor Lillqvist <tml at collabora.com>
diff --git a/extensions/source/ole/unoobjw.cxx b/extensions/source/ole/unoobjw.cxx
index ba2b2fd0ceea..a9d2a4a4cd06 100644
--- a/extensions/source/ole/unoobjw.cxx
+++ b/extensions/source/ole/unoobjw.cxx
@@ -813,6 +813,17 @@ STDMETHODIMP InterfaceOleWrapper_Impl::Invoke(DISPID dispidMember,
convertDispparamsArgs(dispidMember, wFlags, pdispparams , params );
+ // Pass missing (hopefully optional) parameters as Any().
+ InvocationInfo aInvocationInfo;
+ getInvocationInfoForCall(dispidMember, aInvocationInfo);
+ if (pdispparams->cArgs < (UINT)aInvocationInfo.aParamTypes.getLength())
+ {
+ params.realloc(aInvocationInfo.aParamTypes.getLength());
+ Any* pParams = params.getArray();
+ for (int i = pdispparams->cArgs; i < aInvocationInfo.aParamTypes.getLength(); ++i)
+ pParams[i] = Any();
+ }
+
ret= doInvoke(pdispparams, pvarResult,
pexcepinfo, puArgErr, d.name, params);
}
More information about the Libreoffice-commits
mailing list