Index: runtime/third_party/double-conversion/src/double-conversion.h |
diff --git a/runtime/third_party/double-conversion/src/double-conversion.h b/runtime/third_party/double-conversion/src/double-conversion.h |
index 1c3387d4f842c60a2eac65c7c27a7abb28608467..6bdfa8d25d768a640ac460ec1283f2ceae1098aa 100644 |
--- a/runtime/third_party/double-conversion/src/double-conversion.h |
+++ b/runtime/third_party/double-conversion/src/double-conversion.h |
@@ -415,9 +415,10 @@ class StringToDoubleConverter { |
// junk, too. |
// - ALLOW_TRAILING_JUNK: ignore trailing characters that are not part of |
// a double literal. |
- // - ALLOW_LEADING_SPACES: skip over leading spaces. |
- // - ALLOW_TRAILING_SPACES: ignore trailing spaces. |
- // - ALLOW_SPACES_AFTER_SIGN: ignore spaces after the sign. |
+ // - ALLOW_LEADING_SPACES: skip over leading whitespace, including spaces, |
+ // new-lines, and tabs. |
+ // - ALLOW_TRAILING_SPACES: ignore trailing whitespace. |
+ // - ALLOW_SPACES_AFTER_SIGN: ignore whitespace after the sign. |
// Ex: StringToDouble("- 123.2") -> -123.2. |
// StringToDouble("+ 123.2") -> 123.2 |
// |
@@ -502,19 +503,24 @@ class StringToDoubleConverter { |
// in the 'processed_characters_count'. Trailing junk is never included. |
double StringToDouble(const char* buffer, |
int length, |
- int* processed_characters_count) const { |
- return StringToIeee(buffer, length, processed_characters_count, true); |
- } |
+ int* processed_characters_count) const; |
+ |
+ // Same as StringToDouble above but for 16 bit characters. |
+ double StringToDouble(const uc16* buffer, |
+ int length, |
+ int* processed_characters_count) const; |
// Same as StringToDouble but reads a float. |
// Note that this is not equivalent to static_cast<float>(StringToDouble(...)) |
// due to potential double-rounding. |
float StringToFloat(const char* buffer, |
int length, |
- int* processed_characters_count) const { |
- return static_cast<float>(StringToIeee(buffer, length, |
- processed_characters_count, false)); |
- } |
+ int* processed_characters_count) const; |
+ |
+ // Same as StringToFloat above but for 16 bit characters. |
+ float StringToFloat(const uc16* buffer, |
+ int length, |
+ int* processed_characters_count) const; |
private: |
const int flags_; |
@@ -523,10 +529,11 @@ class StringToDoubleConverter { |
const char* const infinity_symbol_; |
const char* const nan_symbol_; |
- double StringToIeee(const char* buffer, |
+ template <class Iterator> |
+ double StringToIeee(Iterator start_pointer, |
int length, |
- int* processed_characters_count, |
- bool read_as_double) const; |
+ bool read_as_double, |
+ int* processed_characters_count) const; |
DISALLOW_IMPLICIT_CONSTRUCTORS(StringToDoubleConverter); |
}; |