- if (index != text_.length())
- U16_SET_CP_LIMIT(text_.data(), 0, index, text_.length());
- return index;
+ if (index == text_.length())
+ return index;
+
+ int32_t text_index = base::checked_cast<int32_t>(index);
+ int32_t text_length = base::checked_cast<int32_t>(text_.length());
+ U16_SET_CP_LIMIT(text_.data(), 0, text_index, text_length);
+ return static_cast<size_t>(text_index);