summaryrefslogtreecommitdiff
path: root/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2009-11-08 09:46:57 +0100
committerKoen Kooi <koen@openembedded.org>2009-11-08 09:46:57 +0100
commitc9abb05e8896ef7096bb74cb541339dda901e17e (patch)
tree1f76b8e93397422b9ef77ed92bebc256019ced0a /recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff
parent09dc5f642ea5ba01121e56babe9359811d831bdc (diff)
firefix: add 3.5.5
Diffstat (limited to 'recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff')
-rw-r--r--recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff39
1 files changed, 39 insertions, 0 deletions
diff --git a/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff b/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff
new file mode 100644
index 0000000000..0848e730d3
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff
@@ -0,0 +1,39 @@
+# XPTC_InvokeByIndex crashes
+# Bug 339782 [ARM] XPTC_InvokeByIndex crashes when cross-compiled under GCC 3.4.x with EABI (CodeSourcery)
+Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+===================================================================
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+@@ -51,22 +51,32 @@
+ #ifdef __ARM_EABI__
+ #define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
+ #define VAR_STACK_SIZE_64 3
+ #else
+ #define DOUBLEWORD_ALIGN(p) (p)
+ #define VAR_STACK_SIZE_64 2
+ #endif
+
++#ifdef __ARM_EABI__
++#define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
++#else
++#define DOUBLEWORD_ALIGN(p) (p)
++#endif
++
+ // Remember that these 'words' are 32bit DWORDS
+
+ static PRUint32
+ invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+ {
+ PRUint32 result = 0;
++
++ /* Note that we give a "worst case" estimate of how much stack _might_ be
++ * needed, rather than the real count - this should be safe */
++
+ for(PRUint32 i = 0; i < paramCount; i++, s++)
+ {
+ if(s->IsPtrData())
+ {
+ result++;
+ continue;
+ }
+ switch(s->type)