Index: base/string_util.cc |
diff --git a/base/string_util.cc b/base/string_util.cc |
index 1ad9abe5d8396f20dcefd5170aedf4e5644391ef..0cbb25fcb8c06354af111a6af0f2096b18e2ab2c 100644 |
--- a/base/string_util.cc |
+++ b/base/string_util.cc |
@@ -831,7 +831,6 @@ template<class FormatStringType, class OutStringType> |
OutStringType DoReplaceStringPlaceholders(const FormatStringType& format_string, |
const std::vector<OutStringType>& subst, std::vector<size_t>* offsets) { |
size_t substitutions = subst.size(); |
- DCHECK(substitutions < 10); |
size_t sub_length = 0; |
for (typename std::vector<OutStringType>::const_iterator iter = subst.begin(); |
@@ -856,7 +855,14 @@ OutStringType DoReplaceStringPlaceholders(const FormatStringType& format_string, |
} |
--i; |
} else { |
- uintptr_t index = *i - '1'; |
+ uintptr_t index = 0; |
+ while ('0' <= *i && '9' >= *i) { |
+ index *= 10; |
+ index += *i - '0'; |
+ ++i; |
+ } |
+ --i; |
+ index -= 1; |
if (offsets) { |
ReplacementOffset r_offset(index, |
static_cast<int>(formatted.size())); |