Index: src/inspector/string-16.cc |
diff --git a/src/inspector/string-16.cc b/src/inspector/string-16.cc |
index a194a321094b64d5bfd6cc19ef4ed51838c6c8a2..d4eedb450b483c7c330829f5613d3e7d4e8b76a7 100644 |
--- a/src/inspector/string-16.cc |
+++ b/src/inspector/string-16.cc |
@@ -10,6 +10,7 @@ |
#include <cctype> |
#include <cstdlib> |
#include <cstring> |
+#include <limits> |
#include <locale> |
#include <string> |
@@ -37,9 +38,12 @@ int charactersToInteger(const UChar* characters, size_t length, |
buffer.push_back('\0'); |
char* endptr; |
- int result = std::strtol(buffer.data(), &endptr, 10); |
- if (ok) *ok = !(*endptr); |
- return result; |
+ long result = std::strtol(buffer.data(), &endptr, 10); |
+ if (ok) { |
+ *ok = !(*endptr) && result <= std::numeric_limits<int>::max() && |
+ result >= std::numeric_limits<int>::min(); |
+ } |
+ return static_cast<int>(result); |
} |
const UChar replacementCharacter = 0xFFFD; |
@@ -248,7 +252,7 @@ static const UChar32 offsetsFromUTF8[6] = {0x00000000UL, |
static_cast<UChar32>(0xFA082080UL), |
static_cast<UChar32>(0x82082080UL)}; |
-static inline UChar32 readUTF8Sequence(const char*& sequence, unsigned length) { |
+static inline UChar32 readUTF8Sequence(const char*& sequence, size_t length) { |
UChar32 character = 0; |
// The cases all fall through. |
@@ -366,6 +370,14 @@ String16 String16::fromInteger(int number) { |
} |
// static |
+String16 String16::fromInteger(size_t number) { |
+ const size_t kBufferSize = 50; |
+ char buffer[kBufferSize]; |
+ std::snprintf(buffer, kBufferSize, "%zu", number); |
+ return String16(buffer); |
+} |
+ |
+// static |
String16 String16::fromDouble(double number) { |
const size_t kBufferSize = 100; |
char buffer[kBufferSize]; |
@@ -396,8 +408,8 @@ int String16::toInteger(bool* ok) const { |
String16 String16::stripWhiteSpace() const { |
if (!length()) return String16(); |
- unsigned start = 0; |
- unsigned end = length() - 1; |
+ size_t start = 0; |
+ size_t end = length() - 1; |
// skip white space from start |
while (start <= end && isSpaceOrNewLine(characters16()[start])) ++start; |
@@ -455,12 +467,12 @@ String16 String16::fromUTF8(const char* stringStart, size_t length) { |
true) != conversionOK) |
return String16(); |
- unsigned utf16Length = bufferCurrent - bufferStart; |
+ size_t utf16Length = bufferCurrent - bufferStart; |
return String16(bufferStart, utf16Length); |
} |
std::string String16::utf8() const { |
- unsigned length = this->length(); |
+ size_t length = this->length(); |
if (!length) return std::string(""); |