o cosmetic changes, fix typos o use libart instead of GPC[1] o remove BROKEN for old FreeBSDs, IMHO this is too strict. o build crashreport Implicitly suggested by: "Mikhail T." <mi@aldan.algebra.com>[1]
173 lines
6 KiB
Text
173 lines
6 KiB
Text
Issuetracker : #i56947#
|
|
CWS : N/A
|
|
Author : <maho@openoffice.org> (JCA)
|
|
Description : FreeBSD porting : update files at bridges project
|
|
catch up version up of bridge project of GNU/Linux
|
|
|
|
--- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx Thu Sep 8 07:20:08 2005
|
|
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx Wed Oct 26 15:10:05 2005
|
|
@@ -57,7 +57,7 @@
|
|
typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
|
|
sal_Int32 nParams, typelib_MethodParameter * pParams,
|
|
void ** pCallStack,
|
|
- sal_Int64 * pRegisterReturn /* space for register return */ )
|
|
+ void * pReturnValue )
|
|
{
|
|
// pCallStack: ret, [return ptr], this, params
|
|
char * pCppStack = (char *)(pCallStack +1);
|
|
@@ -74,7 +74,7 @@
|
|
{
|
|
if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
|
|
{
|
|
- pUnoReturn = pRegisterReturn; // direct way for simple types
|
|
+ pUnoReturn = pReturnValue; // direct way for simple types
|
|
}
|
|
else // complex return via ptr (pCppReturn)
|
|
{
|
|
@@ -215,7 +215,7 @@
|
|
uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
|
|
}
|
|
// complex return ptr is set to eax
|
|
- *(void **)pRegisterReturn = pCppReturn;
|
|
+ *static_cast< void ** >(pReturnValue) = pCppReturn;
|
|
}
|
|
if (pReturnTypeDescr)
|
|
{
|
|
@@ -228,7 +228,7 @@
|
|
//==================================================================================================
|
|
extern "C" void cpp_vtable_call(
|
|
int nFunctionIndex, int nVtableOffset, void** pCallStack,
|
|
- sal_Int64 nRegReturn )
|
|
+ void * pReturnValue )
|
|
{
|
|
OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
|
|
|
|
@@ -275,7 +275,7 @@
|
|
pCppI, aMemberDescr.get(),
|
|
((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
|
|
0, 0, // no params
|
|
- pCallStack, &nRegReturn );
|
|
+ pCallStack, pReturnValue );
|
|
}
|
|
else
|
|
{
|
|
@@ -290,7 +290,7 @@
|
|
pCppI, aMemberDescr.get(),
|
|
0, // indicates void return
|
|
1, &aParam,
|
|
- pCallStack, &nRegReturn );
|
|
+ pCallStack, pReturnValue );
|
|
}
|
|
break;
|
|
}
|
|
@@ -324,7 +324,7 @@
|
|
&pInterface, pTD, cpp_acquire );
|
|
pInterface->release();
|
|
TYPELIB_DANGER_RELEASE( pTD );
|
|
- *(void **)&nRegReturn = pCallStack[1];
|
|
+ *static_cast< void ** >(pReturnValue) = pCallStack[1];
|
|
break;
|
|
}
|
|
TYPELIB_DANGER_RELEASE( pTD );
|
|
@@ -336,7 +336,7 @@
|
|
((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
|
|
((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
|
|
((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
|
|
- pCallStack, &nRegReturn );
|
|
+ pCallStack, pReturnValue );
|
|
}
|
|
break;
|
|
}
|
|
--- bridges/source/cpp_uno/gcc3_freebsd_intel/call.s Wed Jun 1 01:32:41 2005
|
|
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/call.s Wed Oct 26 15:10:04 2005
|
|
@@ -9,12 +9,13 @@
|
|
.LCFIg0:
|
|
movl %esp,%ebp
|
|
.LCFIg1:
|
|
- subl $0x8,%esp # 64bit nRegReturn
|
|
+ subl $0x4,%esp # 32bit returnValue
|
|
+ pushl %esp # 32bit &returnValue
|
|
pushl %ecx # 32bit pCallStack
|
|
pushl %edx # 32bit nVtableOffset
|
|
pushl %eax # 32bit nFunctionIndex
|
|
call cpp_vtable_call
|
|
- movl 12(%esp),%eax # 64 bit nRegReturn, lower half
|
|
+ movl 16(%esp),%eax # 32bit returnValue
|
|
leave
|
|
ret
|
|
.LFEg:
|
|
@@ -29,7 +30,7 @@
|
|
.LCFIv0:
|
|
movl %esp,%ebp
|
|
.LCFIv1:
|
|
- subl $0x8,%esp # 64bit nRegReturn
|
|
+ pushl $0 # 32bit null pointer (returnValue not used)
|
|
pushl %ecx # 32bit pCallStack
|
|
pushl %edx # 32bit nVtableOffset
|
|
pushl %eax # 32bit nFunctionIndex
|
|
@@ -48,13 +49,14 @@
|
|
.LCFIh0:
|
|
movl %esp,%ebp
|
|
.LCFIh1:
|
|
- subl $0x8,%esp # 64bit nRegReturn
|
|
+ subl $0x8,%esp # 64bit returnValue
|
|
+ pushl %esp # 32bit &returnValue
|
|
pushl %ecx # 32bit pCallStack
|
|
pushl %edx # 32bit nVtableOffset
|
|
pushl %eax # 32bit nFunctionIndex
|
|
call cpp_vtable_call
|
|
- movl 12(%esp),%eax # 64 bit nRegReturn, lower half
|
|
- movl 16(%esp),%edx # 64 bit nRegReturn, upper half
|
|
+ movl 16(%esp),%eax # 64bit returnValue, lower half
|
|
+ movl 20(%esp),%edx # 64bit returnValue, upper half
|
|
leave
|
|
ret
|
|
.LFEh:
|
|
@@ -69,12 +71,13 @@
|
|
.LCFIf0:
|
|
movl %esp,%ebp
|
|
.LCFIf1:
|
|
- subl $0x8,%esp # 64bit nRegReturn
|
|
+ subl $0x4,%esp # 32bit returnValue
|
|
+ pushl %esp # 32bit &returnValue
|
|
pushl %ecx # 32bit pCallStack
|
|
pushl %edx # 32bit nVtableOffset
|
|
pushl %eax # 32bit nFunctionIndex
|
|
call cpp_vtable_call
|
|
- flds 12(%esp) # 64 bit nRegReturn, lower half
|
|
+ flds 16(%esp) # 32bit returnValue
|
|
leave
|
|
ret
|
|
.LFEf:
|
|
@@ -89,12 +92,13 @@
|
|
.LCFId0:
|
|
movl %esp,%ebp
|
|
.LCFId1:
|
|
- subl $0x8,%esp # 64bit nRegReturn
|
|
+ subl $0x8,%esp # 64bit returnValue
|
|
+ pushl %esp # 32bit &returnValue
|
|
pushl %ecx # 32bit pCallStack
|
|
pushl %edx # 32bit nVtableOffset
|
|
pushl %eax # 32bit nFunctionIndex
|
|
call cpp_vtable_call
|
|
- fldl 12(%esp) # 64 bit nRegReturn
|
|
+ fldl 16(%esp) # 64bit returnValue
|
|
leave
|
|
ret
|
|
.LFEd:
|
|
@@ -109,12 +113,13 @@
|
|
.LCFIc0:
|
|
movl %esp,%ebp
|
|
.LCFIc1:
|
|
- subl $0x8,%esp # 64bit nRegReturn
|
|
+ subl $0x4,%esp # 32bit returnValue
|
|
+ pushl %esp # 32bit &returnValue
|
|
pushl %ecx # 32bit pCallStack
|
|
pushl %edx # 32bit nVtableOffset
|
|
pushl %eax # 32bit nFunctionIndex
|
|
call cpp_vtable_call
|
|
- movl 12(%esp),%eax # 64 bit nRegReturn, lower half
|
|
+ movl 16(%esp),%eax # 32bit returnValue
|
|
leave
|
|
ret $4
|
|
.LFEc:
|