From c1b7f7b096880925434bbd9b4270c98c3c8e7f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Tue, 30 Oct 2012 11:48:56 -0400 Subject: [PATCH] Bug 806538 - Update double-conversion and document the version we are at. r=Waldo. --HG-- extra : rebase_source : 7e7ec80943329342c2305370dd0fe6bde46433a4 --- mfbt/double-conversion/double-conversion.cc | 2 +- mfbt/double-conversion/fast-dtoa.cc | 2 +- .../more-architectures.patch | 30 ------------------- mfbt/double-conversion/strtod.cc | 6 ++-- mfbt/double-conversion/update.sh | 5 +++- 5 files changed, 9 insertions(+), 36 deletions(-) delete mode 100644 mfbt/double-conversion/more-architectures.patch diff --git a/mfbt/double-conversion/double-conversion.cc b/mfbt/double-conversion/double-conversion.cc index 650137b492d..a79fe92d225 100644 --- a/mfbt/double-conversion/double-conversion.cc +++ b/mfbt/double-conversion/double-conversion.cc @@ -162,7 +162,7 @@ bool DoubleToStringConverter::ToShortestIeeeNumber( double value, StringBuilder* result_builder, DoubleToStringConverter::DtoaMode mode) const { - assert(mode == SHORTEST || mode == SHORTEST_SINGLE); + ASSERT(mode == SHORTEST || mode == SHORTEST_SINGLE); if (Double(value).IsSpecial()) { return HandleSpecialValues(value, result_builder); } diff --git a/mfbt/double-conversion/fast-dtoa.cc b/mfbt/double-conversion/fast-dtoa.cc index 0609422798a..1a0f8235092 100644 --- a/mfbt/double-conversion/fast-dtoa.cc +++ b/mfbt/double-conversion/fast-dtoa.cc @@ -529,7 +529,7 @@ static bool Grisu3(double v, if (mode == FAST_DTOA_SHORTEST) { Double(v).NormalizedBoundaries(&boundary_minus, &boundary_plus); } else { - assert(mode == FAST_DTOA_SHORTEST_SINGLE); + ASSERT(mode == FAST_DTOA_SHORTEST_SINGLE); float single_v = static_cast(v); Single(single_v).NormalizedBoundaries(&boundary_minus, &boundary_plus); } diff --git a/mfbt/double-conversion/more-architectures.patch b/mfbt/double-conversion/more-architectures.patch deleted file mode 100644 index b8d38047e36..00000000000 --- a/mfbt/double-conversion/more-architectures.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h ---- a/mfbt/double-conversion/utils.h -+++ b/mfbt/double-conversion/utils.h -@@ -48,20 +48,24 @@ - // An easy way to test if the floating-point operations are correct is to - // evaluate: 89255.0/1e22. If the floating-point stack is 64 bits wide then - // the result is equal to 89255e-22. - // The best way to test this, is to create a division-function and to compare - // the output of the division with the expected result. (Inlining must be - // disabled.) - // On Linux,x86 89255e-22 != Div_double(89255.0/1e22) - #if defined(_M_X64) || defined(__x86_64__) || \ -- defined(__ARMEL__) || \ -+ defined(__ARMEL__) || defined(__avr32__) || \ -+ defined(__hppa__) || defined(__ia64__) || \ -+ defined(__mips__) || defined(__powerpc__) || \ -+ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ -+ defined(__SH4__) || defined(__alpha__) || \ - defined(_MIPS_ARCH_MIPS32R2) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 --#elif defined(_M_IX86) || defined(__i386__) -+#elif defined(_M_IX86) || defined(__i386__) || defined(__i386) - #if defined(_WIN32) - // Windows uses a 64bit wide floating point stack. - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 - #else - #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS - #endif // _WIN32 - #else - #error Target architecture was not detected as supported by Double-Conversion. diff --git a/mfbt/double-conversion/strtod.cc b/mfbt/double-conversion/strtod.cc index d5abc937c9d..9758989f71d 100644 --- a/mfbt/double-conversion/strtod.cc +++ b/mfbt/double-conversion/strtod.cc @@ -515,15 +515,15 @@ float Strtof(Vector buffer, int exponent) { double double_next2 = Double(double_next).NextDouble(); f4 = static_cast(double_next2); } - assert(f1 <= f2 && f2 <= f3 && f3 <= f4); + ASSERT(f1 <= f2 && f2 <= f3 && f3 <= f4); // If the guess doesn't lie near a single-precision boundary we can simply // return its float-value. - if ((f1 == f4)) { + if (f1 == f4) { return float_guess; } - assert((f1 != f2 && f2 == f3 && f3 == f4) || + ASSERT((f1 != f2 && f2 == f3 && f3 == f4) || (f1 == f2 && f2 != f3 && f3 == f4) || (f1 == f2 && f2 == f3 && f3 != f4)); diff --git a/mfbt/double-conversion/update.sh b/mfbt/double-conversion/update.sh index 81add8ef7c0..43091e31253 100755 --- a/mfbt/double-conversion/update.sh +++ b/mfbt/double-conversion/update.sh @@ -3,6 +3,10 @@ # Copies the needed files from a directory containing the original # double-conversion source that we need. +# This was last updated with git rev e5b34421b763f7bf7e4f9081403db417d5a55a36. + +set -e + cp $1/LICENSE ./ cp $1/README ./ @@ -14,4 +18,3 @@ cp $1/src/*.cc ./ patch -p3 < add-mfbt-api-markers.patch patch -p3 < use-StandardInteger.patch -patch -p3 < more-architectures.patch