summaryrefslogtreecommitdiffstats
path: root/www/firefox/files/patch-Double.cpp
diff options
context:
space:
mode:
authorahze <ahze@df743ca5-7f9a-e211-a948-0013205c9059>2005-06-02 09:05:36 +0800
committerahze <ahze@df743ca5-7f9a-e211-a948-0013205c9059>2005-06-02 09:05:36 +0800
commitb10c110cfe04fdd097086e56c11831054809b0e5 (patch)
treedf348c4839a67204d0dec1fbdb9cdc5a188e098b /www/firefox/files/patch-Double.cpp
parentae582365a5d1a6050b651b72a1ce72488ca059cd (diff)
downloadmarcuscom-ports-b10c110cfe04fdd097086e56c11831054809b0e5.tar.gz
marcuscom-ports-b10c110cfe04fdd097086e56c11831054809b0e5.tar.zst
marcuscom-ports-b10c110cfe04fdd097086e56c11831054809b0e5.zip
- Readd firefox at version 1.1.a1 (deer park alpha1)
- Remove lots of patches that are merged in to firefox now. - Always use XFT now. Notes: o The way we register chrome no longer works I tired to do a workaround but it didn't work. We might have to go back to the way we used to register chrome with the X hack stuff. For now you HAVE to run firefox as root before you can run it as normal user or it won't even start. Hopefully they will merge the fixes mozilla-devel has so you don't have to register chrome at all. o The pis scripts stuff need testing also, I'm not really sure about them? Release Notes: http://www.mozilla.org/projects/deerpark/releases/alpha1.html git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@4022 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'www/firefox/files/patch-Double.cpp')
-rw-r--r--www/firefox/files/patch-Double.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/www/firefox/files/patch-Double.cpp b/www/firefox/files/patch-Double.cpp
new file mode 100644
index 000000000..26a1fa563
--- /dev/null
+++ b/www/firefox/files/patch-Double.cpp
@@ -0,0 +1,61 @@
+$FreeBSD$
+
+--- extensions/transformiix/source/base/Double.cpp.orig Thu Jan 30 09:26:46 2003
++++ extensions/transformiix/source/base/Double.cpp Sun Nov 16 01:46:42 2003
+@@ -51,10 +51,10 @@
+ //A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
+ #ifdef __FreeBSD__
+ #include <ieeefp.h>
+-#ifdef __alpha__
+-fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
+-#else
++#if defined(__i386__)
+ fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;
++#else
++fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
+ #endif
+ fp_except_t oldmask = fpsetmask(~allmask);
+ #endif
+@@ -75,22 +75,31 @@
+ #define TX_DOUBLE_HI32_EXPMASK 0x7ff00000
+ #define TX_DOUBLE_HI32_MANTMASK 0x000fffff
+
++union ui32dun {
++ PRUint32 i[2];
++ double d;
++};
++
+ //-- Initialize Double related constants
+ #ifdef IS_BIG_ENDIAN
+-const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
+- 0xffffffff};
+-const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0};
+-const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
++const union ui32dun nanMask =
++ {{TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, 0xffffffff}};
++const union ui32dun infMask =
++ {{TX_DOUBLE_HI32_EXPMASK, 0}};
++const union ui32dun negInfMask =
++ {{TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0}};
+ #else
+-const PRUint32 nanMask[2] = {0xffffffff,
+- TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
+-const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK};
+-const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
++const union ui32dun nanMask =
++ {{0xffffffff, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK}};
++const union ui32dun infMask =
++ {{0, TX_DOUBLE_HI32_EXPMASK}};
++const union ui32dun negInfMask =
++ {{0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT}};
+ #endif
+
+-const double Double::NaN = *((double*)nanMask);
+-const double Double::POSITIVE_INFINITY = *((double*)infMask);
+-const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
++const double Double::NaN = nanMask.d;
++const double Double::POSITIVE_INFINITY = infMask.d;
++const double Double::NEGATIVE_INFINITY = negInfMask.d;
+
+ /*
+ * Determines whether the given double represents positive or negative