Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1376)

Unified Diff: third_party/WebKit/Source/wtf/dtoa.cpp

Issue 2764243002: Move files in wtf/ to platform/wtf/ (Part 9). (Closed)
Patch Set: Rebase. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/dtoa.h ('k') | third_party/WebKit/Source/wtf/dtoa/COPYING » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/wtf/dtoa.cpp
diff --git a/third_party/WebKit/Source/wtf/dtoa.cpp b/third_party/WebKit/Source/wtf/dtoa.cpp
deleted file mode 100644
index a0f46f83069bf67d3c1d667db17405a135ff16e7..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/wtf/dtoa.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
- * Copyright (C) 2002, 2005, 2006, 2007, 2008, 2010, 2012 Apple Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-
-/* Please send bug reports to David M. Gay (dmg at acm dot org,
- * with " at " changed at "@" and " dot " changed to "."). */
-
-/* On a machine with IEEE extended-precision registers, it is
- * necessary to specify double-precision (53-bit) rounding precision
- * before invoking strtod or dtoa. If the machine uses (the equivalent
- * of) Intel 80x87 arithmetic, the call
- * _control87(PC_53, MCW_PC);
- * does this with many compilers. Whether this or another call is
- * appropriate depends on the compiler; for this to work, it may be
- * necessary to #include "float.h" or another system-dependent header
- * file.
- */
-
-#include "wtf/dtoa.h"
-
-#include "wtf/Vector.h"
-#include <string.h>
-
-namespace WTF {
-
-const char* numberToString(double d, NumberToStringBuffer buffer) {
- double_conversion::StringBuilder builder(buffer, NumberToStringBufferLength);
- const double_conversion::DoubleToStringConverter& converter =
- double_conversion::DoubleToStringConverter::EcmaScriptConverter();
- converter.ToShortest(d, &builder);
- return builder.Finalize();
-}
-
-static inline const char* formatStringTruncatingTrailingZerosIfNeeded(
- NumberToStringBuffer buffer,
- double_conversion::StringBuilder& builder) {
- size_t length = builder.position();
-
- // If there is an exponent, stripping trailing zeros would be incorrect.
- // FIXME: Zeros should be stripped before the 'e'.
- if (memchr(buffer, 'e', length))
- return builder.Finalize();
-
- size_t decimalPointPosition = 0;
- for (; decimalPointPosition < length; ++decimalPointPosition) {
- if (buffer[decimalPointPosition] == '.')
- break;
- }
-
- // No decimal seperator found, early exit.
- if (decimalPointPosition == length)
- return builder.Finalize();
-
- size_t truncatedLength = length - 1;
- for (; truncatedLength > decimalPointPosition; --truncatedLength) {
- if (buffer[truncatedLength] != '0')
- break;
- }
-
- // No trailing zeros found to strip.
- if (truncatedLength == length - 1)
- return builder.Finalize();
-
- // If we removed all trailing zeros, remove the decimal point as well.
- if (truncatedLength == decimalPointPosition) {
- DCHECK_GT(truncatedLength, 0u);
- --truncatedLength;
- }
-
- // Truncate the StringBuilder, and return the final result.
- builder.SetPosition(truncatedLength + 1);
- return builder.Finalize();
-}
-
-const char* numberToFixedPrecisionString(double d,
- unsigned significantFigures,
- NumberToStringBuffer buffer) {
- // Mimic String::format("%.[precision]g", ...), but use dtoas rounding
- // facilities.
- // "g": Signed value printed in f or e format, whichever is more compact for
- // the given value and precision.
- // The e format is used only when the exponent of the value is less than -4 or
- // greater than or equal to the precision argument. Trailing zeros are
- // truncated, and the decimal point appears only if one or more digits follow
- // it.
- // "precision": The precision specifies the maximum number of significant
- // digits printed.
- double_conversion::StringBuilder builder(buffer, NumberToStringBufferLength);
- const double_conversion::DoubleToStringConverter& converter =
- double_conversion::DoubleToStringConverter::EcmaScriptConverter();
- converter.ToPrecision(d, significantFigures, &builder);
- // FIXME: Trailing zeros should never be added in the first place. The
- // current implementation does not strip when there is an exponent, eg.
- // 1.50000e+10.
- return formatStringTruncatingTrailingZerosIfNeeded(buffer, builder);
-}
-
-const char* numberToFixedWidthString(double d,
- unsigned decimalPlaces,
- NumberToStringBuffer buffer) {
- // Mimic String::format("%.[precision]f", ...), but use dtoas rounding
- // facilities.
- // "f": Signed value having the form [ - ]dddd.dddd, where dddd is one or more
- // decimal digits. The number of digits before the decimal point depends on
- // the magnitude of the number, and the number of digits after the decimal
- // point depends on the requested precision.
- // "precision": The precision value specifies the number of digits after the
- // decimal point. If a decimal point appears, at least one digit appears
- // before it. The value is rounded to the appropriate number of digits.
- double_conversion::StringBuilder builder(buffer, NumberToStringBufferLength);
- const double_conversion::DoubleToStringConverter& converter =
- double_conversion::DoubleToStringConverter::EcmaScriptConverter();
- converter.ToFixed(d, decimalPlaces, &builder);
- return builder.Finalize();
-}
-
-namespace Internal {
-
-double parseDoubleFromLongString(const UChar* string,
- size_t length,
- size_t& parsedLength) {
- Vector<LChar> conversionBuffer(length);
- for (size_t i = 0; i < length; ++i)
- conversionBuffer[i] = isASCII(string[i]) ? string[i] : 0;
- return parseDouble(conversionBuffer.data(), length, parsedLength);
-}
-
-} // namespace Internal
-
-} // namespace WTF
« no previous file with comments | « third_party/WebKit/Source/wtf/dtoa.h ('k') | third_party/WebKit/Source/wtf/dtoa/COPYING » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698