Chromium Code Reviews| Index: runtime/vm/object.cc |
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
| index aa1aac6319890ba3e63a236a9cbd33827415942c..6841a3c3a96b7e818cab0c11678b48cc20b6fb81 100644 |
| --- a/runtime/vm/object.cc |
| +++ b/runtime/vm/object.cc |
| @@ -10586,29 +10586,9 @@ RawDouble* Double::New(double d, Heap::Space space) { |
| } |
| -static bool IsWhiteSpace(char ch) { |
| - return ch == '\0' || ch == '\n' || ch == '\r' || ch == ' ' || ch == '\t'; |
| -} |
| - |
| - |
| -static bool StringToDouble(const String& str, double* double_value) { |
| - ASSERT(double_value != NULL); |
| - // TODO(regis): For now, we use strtod to convert a string to double. |
| - const char* nptr = str.ToCString(); |
| - char* endptr = NULL; |
| - *double_value = strtod(nptr, &endptr); |
| - // We do not treat overflow or underflow as an error and therefore do not |
| - // check errno for ERANGE. |
| - if (!IsWhiteSpace(*endptr)) { |
| - return false; |
| - } |
| - return true; |
| -} |
| - |
| - |
| RawDouble* Double::New(const String& str, Heap::Space space) { |
| double double_value; |
| - if (!StringToDouble(str, &double_value)) { |
| + if (!StringToDouble(str.ToCString(), str.Length(), &double_value)) { |
|
Vyacheslav Egorov (Google)
2013/04/05 13:45:25
I made it more strict than it was before. All test
|
| return Double::Handle().raw(); |
| } |
| return New(double_value, space); |
| @@ -10645,7 +10625,7 @@ RawDouble* Double::NewCanonical(double value) { |
| RawDouble* Double::NewCanonical(const String& str) { |
| double double_value; |
| - if (!StringToDouble(str, &double_value)) { |
| + if (!StringToDouble(str.ToCString(), str.Length(), &double_value)) { |
| return Double::Handle().raw(); |
| } |
| return NewCanonical(double_value); |