aboutsummaryrefslogtreecommitdiff
path: root/editors/openoffice-3
diff options
context:
space:
mode:
authorMaho Nakata <maho@FreeBSD.org>2012-05-19 08:00:15 +0000
committerMaho Nakata <maho@FreeBSD.org>2012-05-19 08:00:15 +0000
commit74e2f74a161aa376446a3ba300f301cb9143dead (patch)
tree4d5b7b44759e1e456322670784319e1ef2783e2b /editors/openoffice-3
parentb2f63f2ae38dd919a840644947c99f735951af60 (diff)
downloadports-74e2f74a161aa376446a3ba300f301cb9143dead.tar.gz
ports-74e2f74a161aa376446a3ba300f301cb9143dead.zip
Notes
Diffstat (limited to 'editors/openoffice-3')
-rw-r--r--editors/openoffice-3/files/patch-doublemmap65
1 files changed, 65 insertions, 0 deletions
diff --git a/editors/openoffice-3/files/patch-doublemmap b/editors/openoffice-3/files/patch-doublemmap
new file mode 100644
index 000000000000..35397bd2b33f
--- /dev/null
+++ b/editors/openoffice-3/files/patch-doublemmap
@@ -0,0 +1,65 @@
+Index: bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
+===================================================================
+--- bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx (revision 1337224)
++++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx (working copy)
+@@ -355,7 +355,7 @@
+ 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 @@
+ // 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 @@
+ }
+
+ 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 @@
+ 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 @@
+ 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;