[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-5-2+backports' - stoc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Thu Mar 21 12:14:00 UTC 2019
stoc/source/corereflection/criface.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 7787dd094de34556abdd6293e6a6166615eef238
Author: Juergen Funk <juergen.funk_ml at cib.de>
AuthorDate: Thu Mar 21 09:22:03 2019 +0100
Commit: Juergen Funk (CIB) <juergen.funk_ml at cib.de>
CommitDate: Thu Mar 21 13:13:30 2019 +0100
pUnoReturn should be null when UNO methode is VOID
the problem is that at least the msvc_win32_x86-64 bridge's
unoInterfaceProxyDispatch
(bridges/source/cpp_uno/msvc_win32_x86-64/uno2cpp.cxx)
requires pUnoReturn to be a nullptr when the UNO method has VOID
return type (see computation of retKind in cpp_call in the same file),
but that IdlInterfaceMethodImpl::invoke doesn't set up the arguments
according to that expectation.
Change-Id: I187a997300571cd9822de2eeacf7ad887ad00a4f
Reviewed-on: https://gerrit.libreoffice.org/69495
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
Tested-by: Stephan Bergmann <sbergman at redhat.com>
(cherry picked from commit 14a11ab5dfa2ea34049866517ee78170922aee4e)
Reviewed-on: https://gerrit.libreoffice.org/69504
Reviewed-by: Juergen Funk (CIB) <juergen.funk_ml at cib.de>
Tested-by: Juergen Funk (CIB) <juergen.funk_ml at cib.de>
diff --git a/stoc/source/corereflection/criface.cxx b/stoc/source/corereflection/criface.cxx
index 391742cef8f1..6cdb19788908 100644
--- a/stoc/source/corereflection/criface.cxx
+++ b/stoc/source/corereflection/criface.cxx
@@ -631,7 +631,7 @@ Any SAL_CALL IdlInterfaceMethodImpl::invoke( const Any & rObj, Sequence< Any > &
// end of a "short" struct by writing the full contents of a "long"
// register); so create enough space here (assuming that no ABI requires
// padding larger than 16 byte boundaries):
- void * pUnoReturn = alloca( multipleOf16(pReturnType->nSize) );
+ void * pUnoReturn = (pReturnType->nSize == 0) ? nullptr : alloca( multipleOf16(pReturnType->nSize) );
void ** ppUnoArgs = static_cast<void **>(alloca( sizeof(void *) * nParams *2 ));
typelib_TypeDescription ** ppParamTypes = reinterpret_cast<typelib_TypeDescription **>(ppUnoArgs + nParams);
More information about the Libreoffice-commits
mailing list