summaryrefslogtreecommitdiffstats
path: root/chromium/base/strings/string_number_conversions.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/strings/string_number_conversions.cc')
-rw-r--r--chromium/base/strings/string_number_conversions.cc21
1 files changed, 8 insertions, 13 deletions
diff --git a/chromium/base/strings/string_number_conversions.cc b/chromium/base/strings/string_number_conversions.cc
index e3e71bef023..59dc93be8ad 100644
--- a/chromium/base/strings/string_number_conversions.cc
+++ b/chromium/base/strings/string_number_conversions.cc
@@ -78,24 +78,19 @@ struct IntToStringT {
// unsigned, even the presence of the unary operation causes a warning.
UINT res = ToUnsignedT<INT, UINT, NEG>::ToUnsigned(value);
- for (typename STR::iterator it = outbuf.end();;) {
+ typename STR::iterator it(outbuf.end());
+ do {
--it;
DCHECK(it != outbuf.begin());
*it = static_cast<typename STR::value_type>((res % 10) + '0');
res /= 10;
-
- // We're done..
- if (res == 0) {
- if (is_neg) {
- --it;
- DCHECK(it != outbuf.begin());
- *it = static_cast<typename STR::value_type>('-');
- }
- return STR(it, outbuf.end());
- }
+ } while (res != 0);
+ if (is_neg) {
+ --it;
+ DCHECK(it != outbuf.begin());
+ *it = static_cast<typename STR::value_type>('-');
}
- NOTREACHED();
- return STR();
+ return STR(it, outbuf.end());
}
};