aboutsummaryrefslogtreecommitdiff
path: root/www/libxul/files/patch-xptcall-sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'www/libxul/files/patch-xptcall-sparc64')
-rw-r--r--www/libxul/files/patch-xptcall-sparc6446
1 files changed, 24 insertions, 22 deletions
diff --git a/www/libxul/files/patch-xptcall-sparc64 b/www/libxul/files/patch-xptcall-sparc64
index 9599a8a71336..8d87d8cbd8d4 100644
--- a/www/libxul/files/patch-xptcall-sparc64
+++ b/www/libxul/files/patch-xptcall-sparc64
@@ -1,6 +1,6 @@
---- /dev/null Mon May 26 13:22:00 2003
-+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp Mon May 26 04:12:55 2003
-@@ -0,0 +1,123 @@
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp.orig 2009-09-30 22:48:25.000000000 +0200
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp 2009-09-30 23:09:48.000000000 +0200
+@@ -0,0 +1,125 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Mozilla Public
@@ -27,6 +27,7 @@
+/* Implement shared vtbl methods. */
+
+#include "xptcprivate.h"
++#include "xptiprivate.h"
+
+#if defined(sparc) || defined(__sparc__)
+
@@ -38,7 +39,6 @@
+
+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+ nsXPTCMiniVariant* dispatchParams = NULL;
-+ nsIInterfaceInfo* iface_info = NULL;
+ const nsXPTMethodInfo* info;
+ PRUint8 paramCount;
+ PRUint8 i;
@@ -46,11 +46,10 @@
+
+ NS_ASSERTION(self,"no self");
+
-+ self->GetInterfaceInfo(&iface_info);
-+ NS_ASSERTION(iface_info,"no interface info");
-+
-+ iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
-+ NS_ASSERTION(info,"no interface info");
++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info);
++ NS_ASSERTION(info,"no method info");
++ if (! info)
++ return NS_ERROR_UNEXPECTED;
+
+ paramCount = info->GetParamCount();
+
@@ -59,8 +58,12 @@
+ dispatchParams = new nsXPTCMiniVariant[paramCount];
+ else
+ dispatchParams = paramBuffer;
++
+ NS_ASSERTION(dispatchParams,"no place for params");
+
++ if (! dispatchParams)
++ return NS_ERROR_OUT_OF_MEMORY;
++
+ PRUint64* ap = args;
+ for(i = 0; i < paramCount; i++, ap++)
+ {
@@ -95,10 +98,9 @@
+ }
+ }
+
-+ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
-+
-+ NS_RELEASE(iface_info);
-+
++ result = self->mOuter->CallMethod((PRUint16)methodIndex, info,
++ dispatchParams);
++
+ if(dispatchParams != paramBuffer)
+ delete [] dispatchParams;
+
@@ -124,8 +126,8 @@
+#include "xptcstubsdef.inc"
+
+#endif /* sparc || __sparc__ */
---- /dev/null Mon May 26 13:22:00 2003
-+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s Mon May 26 04:06:09 2003
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s.orig 2009-09-30 22:48:25.000000000 +0200
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s 2009-09-30 22:48:25.000000000 +0200
@@ -0,0 +1,104 @@
+/* -*- Mode: asm; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
@@ -161,15 +163,15 @@
+ The SCD is available from http://www.sparc.com/.
+*/
+
-+ .global XPTC_InvokeByIndex
-+ .type XPTC_InvokeByIndex, #function
++ .global NS_InvokeByIndex_P
++ .type NS_InvokeByIndex_P, #function
+
+/*
-+ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
++ NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params);
+
+*/
-+XPTC_InvokeByIndex:
++NS_InvokeByIndex_P:
+ save %sp,-(128 + 64),%sp ! room for the register window and
+ ! struct pointer, rounded up to 0 % 64
+ sll %i2,4,%l0 ! assume the worst case
@@ -230,9 +232,9 @@
+ ret
+ restore
+
-+ .size XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
---- /dev/null Mon May 26 14:00:00 2003
-+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp Mon May 26 14:00:49 2003
++ .size NS_InvokeByIndex_P, .-NS_InvokeByIndex_P
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp.orig 2009-09-30 22:48:25.000000000 +0200
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp 2009-09-30 22:48:25.000000000 +0200
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *