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

Side by Side Diff: lib/Parser_cpp.template

Issue 2843223005: [inspector_protocol] added StringUtil::toDouble method as requirement (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 {% for namespace in config.protocol.namespace %} 5 {% for namespace in config.protocol.namespace %}
6 namespace {{namespace}} { 6 namespace {{namespace}} {
7 {% endfor %} 7 {% endfor %}
8 8
9 namespace { 9 namespace {
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 buffer.reserve(length + 1); 45 buffer.reserve(length + 1);
46 for (size_t i = 0; i < length; ++i) { 46 for (size_t i = 0; i < length; ++i) {
47 if (!isASCII(characters[i])) { 47 if (!isASCII(characters[i])) {
48 *ok = false; 48 *ok = false;
49 return 0; 49 return 0;
50 } 50 }
51 buffer.push_back(static_cast<char>(characters[i])); 51 buffer.push_back(static_cast<char>(characters[i]));
52 } 52 }
53 buffer.push_back('\0'); 53 buffer.push_back('\0');
54 char* endptr; 54 char* endptr;
55 double result = std::strtod(buffer.data(), &endptr); 55 return StringUtil::toDouble(buffer.data(), length, ok);
56 *ok = !(*endptr);
57 return result;
58 } 56 }
59 57
60 double charactersToDouble(const uint8_t* characters, size_t length, bool* ok) 58 double charactersToDouble(const uint8_t* characters, size_t length, bool* ok)
61 { 59 {
62 std::string buffer(reinterpret_cast<const char*>(characters), length); 60 std::string buffer(reinterpret_cast<const char*>(characters), length);
63 char* endptr; 61 return StringUtil::toDouble(buffer.data(), length, ok);
64 double result = std::strtod(buffer.data(), &endptr);
65 *ok = !(*endptr);
66 return result;
67 } 62 }
68 63
69 template<typename Char> 64 template<typename Char>
70 bool parseConstToken(const Char* start, const Char* end, const Char** tokenEnd, const char* token) 65 bool parseConstToken(const Char* start, const Char* end, const Char** tokenEnd, const char* token)
71 { 66 {
72 while (start < end && *token != '\0' && *start++ == *token++) { } 67 while (start < end && *token != '\0' && *start++ == *token++) { }
73 if (*token != '\0') 68 if (*token != '\0')
74 return false; 69 return false;
75 *tokenEnd = start; 70 *tokenEnd = start;
76 return true; 71 return true;
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 } 539 }
545 540
546 std::unique_ptr<Value> parseJSONCharacters(const uint8_t* characters, unsigned l ength) 541 std::unique_ptr<Value> parseJSONCharacters(const uint8_t* characters, unsigned l ength)
547 { 542 {
548 return parseJSONInternal<uint8_t>(characters, length); 543 return parseJSONInternal<uint8_t>(characters, length);
549 } 544 }
550 545
551 {% for namespace in config.protocol.namespace %} 546 {% for namespace in config.protocol.namespace %}
552 } // namespace {{namespace}} 547 } // namespace {{namespace}}
553 {% endfor %} 548 {% endfor %}
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698