summaryrefslogtreecommitdiff
path: root/bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx
diff options
context:
space:
mode:
authorsb <sb@openoffice.org>2010-02-08 09:18:14 +0100
committersb <sb@openoffice.org>2010-02-08 09:18:14 +0100
commit10ddd5251072599a6d1b598dc861d6dc31babf13 (patch)
treec4e156dc578d285501399eee97303d759035f497 /bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx
parenta55d2f6a21a5068a43241f73dd0cadbe28ae6774 (diff)
parentcb6dc8c0cbadd25385d581c0dd3583afc10fd26a (diff)
sb118: merged in DEV300_m71
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx')
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx10
1 files changed, 8 insertions, 2 deletions
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: