summaryrefslogtreecommitdiff
path: root/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <cmc@openoffice.org>2010-01-18 11:56:59 +0000
committerCaolán McNamara <cmc@openoffice.org>2010-01-18 11:56:59 +0000
commitcbb8cded67d757f53642e6753d286c6612757ffe (patch)
treec82fa9bdca601becf8c1f6c9d7b15859b94b81b7 /bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx
parent6e8628fb7374b7d19e15f03e63f8ad221ca25f1e (diff)
s390xport02: #i108410# fix endian issues in s390x
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx')
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx
index 5940f566f9ca..cd922c2fa870 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;