summaryrefslogtreecommitdiffstats
path: root/recipes/mozilla/firefox-3.5.4/Bug339782.additional.fix.diff
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2009-11-02 11:22:10 +0100
committerKoen Kooi <koen@openembedded.org>2009-11-02 13:17:13 +0100
commitb1b029537f885bb27314552f21a159d6b75895d4 (patch)
treee295ee0eb9072cd2d2bf2b4b3ce91bc471983a3f /recipes/mozilla/firefox-3.5.4/Bug339782.additional.fix.diff
parent7e6ad01cd018c8603677712fa082f664d1122734 (diff)
downloadopenembedded-b1b029537f885bb27314552f21a159d6b75895d4.tar.gz
firefox: add 3.5.4
Diffstat (limited to 'recipes/mozilla/firefox-3.5.4/Bug339782.additional.fix.diff')
-rw-r--r--recipes/mozilla/firefox-3.5.4/Bug339782.additional.fix.diff39
1 files changed, 39 insertions, 0 deletions
diff --git a/recipes/mozilla/firefox-3.5.4/Bug339782.additional.fix.diff b/recipes/mozilla/firefox-3.5.4/Bug339782.additional.fix.diff
new file mode 100644
index 0000000000..0848e730d3
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.4/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)