stoc/source/corereflection/criface.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit f735f010a876a531532b9c6759f8f1cf48c5a6fa
Author:     Juergen Funk <juergen.funk...@cib.de>
AuthorDate: Thu Mar 21 09:22:03 2019 +0100
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Thu Mar 21 14:00:16 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 <sberg...@redhat.com>
    Tested-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit 14a11ab5dfa2ea34049866517ee78170922aee4e)
    Reviewed-on: https://gerrit.libreoffice.org/69501
    Tested-by: Jenkins

diff --git a/stoc/source/corereflection/criface.cxx 
b/stoc/source/corereflection/criface.cxx
index c37108081fbe..4ddeecb5954d 100644
--- a/stoc/source/corereflection/criface.cxx
+++ b/stoc/source/corereflection/criface.cxx
@@ -578,7 +578,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);
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to