summaryrefslogtreecommitdiffstats
path: root/www/firefox10/files/patch-Double.cpp
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2005-03-05 09:49:03 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2005-03-05 09:49:03 +0800
commit8873c153d07a5669df16174aa06e9d969dfd5722 (patch)
treecf70af68f63fda720f8e0120672329f90d0ba313 /www/firefox10/files/patch-Double.cpp
parent72cb2251c71ff3fe3c4cee60afd708a1d7399d2c (diff)
downloadmarcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.tar
marcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.tar.gz
marcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.tar.bz2
marcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.tar.lz
marcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.tar.xz
marcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.tar.zst
marcuscom-ports-8873c153d07a5669df16174aa06e9d969dfd5722.zip
Update freetype2 to 2.1.9, and fix Mozilla and Firefox so that they compile
against it. Since there is no ABI change in 2.1.9, we do not need to bump the PORTREVISIONs for mozilla and firefox. PR: 78385 Submitted by: lesi git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@3806 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'www/firefox10/files/patch-Double.cpp')
-rw-r--r--www/firefox10/files/patch-Double.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/www/firefox10/files/patch-Double.cpp b/www/firefox10/files/patch-Double.cpp
new file mode 100644
index 000000000..a9b570c5d
--- /dev/null
+++ b/www/firefox10/files/patch-Double.cpp
@@ -0,0 +1,61 @@
+$FreeBSD: ports/www/firefox/files/patch-Double.cpp,v 1.3 2004/02/11 07:16:17 marcus Exp $
+
+--- 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