diff options
-rw-r--r-- | base/string_util.cc | 9 | ||||
-rw-r--r-- | base/string_util_unittest.cc | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/base/string_util.cc b/base/string_util.cc index 216b047..2488b0b 100644 --- a/base/string_util.cc +++ b/base/string_util.cc @@ -486,14 +486,16 @@ bool TrimString(const std::string& input, void TruncateUTF8ToByteSize(const std::string& input, const size_t byte_size, std::string* output) { + DCHECK(output); if (byte_size > input.length()) { *output = input; return; } - + DCHECK_LE(byte_size, static_cast<uint32>(kint32max)); + // Note: This cast is necessary because CBU8_NEXT uses int32s. int32 truncation_length = static_cast<int32>(byte_size); int32 char_index = truncation_length - 1; - const char* cstr = input.c_str(); + const char* data = input.data(); // Using CBU8, we will move backwards from the truncation point // to the beginning of the string looking for a valid UTF8 @@ -502,7 +504,7 @@ void TruncateUTF8ToByteSize(const std::string& input, while (char_index >= 0) { int32 prev = char_index; uint32 code_point = 0; - CBU8_NEXT(cstr, char_index, truncation_length, code_point); + CBU8_NEXT(data, char_index, truncation_length, code_point); if (!base::IsValidCharacter(code_point) || !base::IsValidCodepoint(code_point)) { char_index = prev - 1; @@ -511,7 +513,6 @@ void TruncateUTF8ToByteSize(const std::string& input, } } - DCHECK(output != NULL); if (char_index >= 0 ) *output = input.substr(0, char_index); else diff --git a/base/string_util_unittest.cc b/base/string_util_unittest.cc index 2fdd62e..7afc0bd 100644 --- a/base/string_util_unittest.cc +++ b/base/string_util_unittest.cc @@ -85,7 +85,7 @@ bool Truncated(const std::string& input, const size_t byte_size, std::string* output) { size_t prev = input.length(); TruncateUTF8ToByteSize(input, byte_size, output); - return prev != (*output).length(); + return prev != output->length(); } } // namespace |