diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2010-01-27 17:23:00 +0100 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2010-01-27 17:23:00 +0100 |
commit | ea4622dcf7aeec09e7820fbb847467c6a633335d (patch) | |
tree | 80012442b29dfba46fc67b23567496575a3bc2e1 | |
parent | 393c8482b60447746be305fc1e0da9eb47e0e43b (diff) | |
parent | 43d361521cf304792a3bc6fe41def014bec0cab7 (diff) |
CWS-TOOLING: integrate CWS s390xport02
4 files changed, 19 insertions, 13 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx index 0d49d0b95a74..eaf9566c54b9 100644 --- a/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx @@ -137,8 +137,8 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName; MutexGuard guard( m_mutex ); - t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) ); - if (iFind == m_rttis.end()) + t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) ); + if (iRttiFind == m_rttis.end()) { // RTTI symbol OStringBuffer buf( 64 ); @@ -202,7 +202,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR } else { - rtti = iFind->second; + rtti = iRttiFind->second; } return rtti; diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx index e866e05f32c5..7e169993e905 100644 --- a/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx @@ -491,7 +491,7 @@ static typelib_TypeClass cpp_mediate( long privateSnippetExecutor(long r2, long r3, long r4, long r5, long r6, long firstonstack) { register long r0 asm("r0"); - sal_uInt32 nOffsetAndIndex = r0; + sal_uInt64 nOffsetAndIndex = r0; long sp = (long)&firstonstack; @@ -522,15 +522,21 @@ long privateSnippetExecutor(long r2, long r3, long r4, long r5, long r6, long fi switch( aType ) { - case typelib_TypeClass_VOID: case typelib_TypeClass_BOOLEAN: case typelib_TypeClass_BYTE: + nRegReturn[0] = (unsigned long)(*(unsigned char *)nRegReturn); + break; case typelib_TypeClass_CHAR: case typelib_TypeClass_UNSIGNED_SHORT: case typelib_TypeClass_SHORT: + nRegReturn[0] = (unsigned long)(*(unsigned short *)nRegReturn); + break; case typelib_TypeClass_ENUM: case typelib_TypeClass_UNSIGNED_LONG: case typelib_TypeClass_LONG: + nRegReturn[0] = (unsigned long)(*(unsigned int *)nRegReturn); + break; + case typelib_TypeClass_VOID: default: break; case typelib_TypeClass_FLOAT: diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx index e474dce7268c..11ddfbb424e2 100644 --- a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx @@ -138,8 +138,8 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName; MutexGuard guard( m_mutex ); - t_rtti_map::const_iterator iFind( m_rttis.find( unoName ) ); - if (iFind == m_rttis.end()) + t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) ); + if (iRttiFind == m_rttis.end()) { // RTTI symbol OStringBuffer buf( 64 ); @@ -203,7 +203,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR } else { - rtti = iFind->second; + rtti = iRttiFind->second; } return rtti; diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx index 5940f566f9ca..2b85eb125d59 100644 --- a/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx @@ -60,19 +60,21 @@ void MapReturn(long r2, double f0, typelib_TypeClass eTypeClass, sal_uInt64* pRe { case typelib_TypeClass_HYPER: case typelib_TypeClass_UNSIGNED_HYPER: + *pRegisterReturn = r2; + break; case typelib_TypeClass_LONG: case typelib_TypeClass_UNSIGNED_LONG: case typelib_TypeClass_ENUM: - *pRegisterReturn = r2; + *(unsigned int*)pRegisterReturn = (unsigned int)r2; break; case typelib_TypeClass_CHAR: case typelib_TypeClass_SHORT: case typelib_TypeClass_UNSIGNED_SHORT: - *pRegisterReturn = (unsigned short)r2; + *(unsigned short*)pRegisterReturn = (unsigned short)r2; break; case typelib_TypeClass_BOOLEAN: case typelib_TypeClass_BYTE: - *pRegisterReturn = (unsigned char)r2; + *(unsigned char*)pRegisterReturn = (unsigned char)r2; break; case typelib_TypeClass_FLOAT: *reinterpret_cast<float *>( pRegisterReturn ) = f0; @@ -90,7 +92,6 @@ void MapReturn(long r2, double f0, typelib_TypeClass eTypeClass, sal_uInt64* pRe #define INSERT_FLOAT( pSV, nr, pFPR, pDS ) \ { \ - float tmp = *reinterpret_cast<float *>( pSV ); \ if ( nr < s390x::MAX_SSE_REGS ) \ { \ pFPR[nr++] = *reinterpret_cast<float *>( pSV ); \ @@ -421,7 +422,6 @@ void unoInterfaceProxyDispatch( // is my surrogate bridges::cpp_uno::shared::UnoInterfaceProxy * pThis = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI); - typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr; switch (pMemberDescr->eTypeClass) { |