diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-08-22 13:52:53 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-08-22 13:53:19 +0100 |
commit | ee6fcdd18b1a839d7d60617d4fda622f6e6e7e66 (patch) | |
tree | 5d8f2265f87a9715204f1ceb620915c703f17673 /bridges/source | |
parent | 9a6d1c6e16132253327e27b5f7a8cff6b8fa4bc9 (diff) |
Related: rhbz#1125588 ppc64le fix simple struct returning
Change-Id: I1e253922fdb606648eff9865f1125a24e35b0d9a
Diffstat (limited to 'bridges/source')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx index 55a53081cc95..aa054d78a16a 100644 --- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx @@ -305,14 +305,18 @@ static void cpp_call( void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion - bool bOverflow = false; + bool bOverflow = false; + bool bSimpleReturn = true; if (pReturnTypeDescr) { #if OSL_DEBUG_LEVEL > 2 fprintf(stderr, "return type is %d\n", pReturnTypeDescr->eTypeClass); #endif - if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) + if (ppc64::return_in_hidden_param(pReturnTypeRef)) + bSimpleReturn = false; + + if (bSimpleReturn) { pCppReturn = pUnoReturn; // direct way for simple types #if OSL_DEBUG_LEVEL > 2 |