From f7087b0eeacf1377033b691b48c764029d914d24 Mon Sep 17 00:00:00 2001 From: Pedro Giffuni Date: Fri, 11 May 2012 15:27:55 +0000 Subject: Update i386 bridge code on FreeBSD to USE_DOUBLE_MMAP. --- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'bridges') diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx index 52ecbcb87ae9..f58a9fe3dc28 100644 --- a/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx +++ b/bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx @@ -355,7 +355,7 @@ extern "C" typedef void (*PrivateSnippetExecutor)(); int const codeSnippetSize = 16; unsigned char * codeSnippet( - unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset, + unsigned char * code, sal_PtrDiff writetoexecdiff, sal_Int32 functionIndex, sal_Int32 vtableOffset, typelib_TypeClass returnTypeClass) { if (!bridges::cpp_uno::shared::isSimpleType(returnTypeClass)) { @@ -401,7 +401,7 @@ unsigned char * codeSnippet( // jmp privateSnippetExecutor: *p++ = 0xE9; *reinterpret_cast< sal_Int32 * >(p) - = ((unsigned char *) exec) - p - sizeof (sal_Int32); + = ((unsigned char *) exec) - p - sizeof (sal_Int32) - writetoexecdiff; p += sizeof (sal_Int32); OSL_ASSERT(p - code <= codeSnippetSize); return code + codeSnippetSize; @@ -434,7 +434,7 @@ bridges::cpp_uno::shared::VtableFactory::initializeBlock( } unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( - Slot ** slots, unsigned char * code, + Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset, sal_Int32 functionCount, sal_Int32 vtableOffset) { @@ -447,9 +447,9 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( switch (member->eTypeClass) { case typelib_TypeClass_INTERFACE_ATTRIBUTE: // Getter: - (s++)->fn = code; + (s++)->fn = code + writetoexecdiff; code = codeSnippet( - code, functionOffset++, vtableOffset, + code, writetoexecdiff, functionOffset++, vtableOffset, reinterpret_cast< typelib_InterfaceAttributeTypeDescription * >( member)->pAttributeTypeRef->eTypeClass); // Setter: @@ -457,17 +457,17 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( typelib_InterfaceAttributeTypeDescription * >( member)->bReadOnly) { - (s++)->fn = code; + (s++)->fn = code + writetoexecdiff; code = codeSnippet( - code, functionOffset++, vtableOffset, + code, writetoexecdiff, functionOffset++, vtableOffset, typelib_TypeClass_VOID); } break; case typelib_TypeClass_INTERFACE_METHOD: - (s++)->fn = code; + (s++)->fn = code + writetoexecdiff; code = codeSnippet( - code, functionOffset++, vtableOffset, + code, writetoexecdiff, functionOffset++, vtableOffset, reinterpret_cast< typelib_InterfaceMethodTypeDescription * >( member)->pReturnTypeRef->eTypeClass); break; -- cgit