summaryrefslogtreecommitdiffstats
path: root/base/string_piece.h
diff options
context:
space:
mode:
authortedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-19 16:10:55 +0000
committertedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-19 16:10:55 +0000
commiteb72b27ac26621b2f1819fa318761a035689482d (patch)
tree3df45496be7931641279e35aa691ceb21ef36fa4 /base/string_piece.h
parentcdd47ee7d8b8d2ef57b36cd6e50215320cef7963 (diff)
downloadchromium_src-eb72b27ac26621b2f1819fa318761a035689482d.zip
chromium_src-eb72b27ac26621b2f1819fa318761a035689482d.tar.gz
chromium_src-eb72b27ac26621b2f1819fa318761a035689482d.tar.bz2
Standardize StringToInt{,64} interface.
These changes address issue #106655. All variants of StringToInt have been converted to use the StringPiece class. One instance of conversion, in chrome/browser/history/text_database.cc, required copying an underlying string. This is because the string type in question could use 8 or 16 bit characters depending on the OS type, and because StringPiece is not implemented as a template, the code cannot specify whether to create a StringPiece or StringPiece16. This should be remedied in a future CL. R=erikwright@chromium.org BUG=106655 TEST= Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=114929 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=114944 Review URL: http://codereview.chromium.org/8921006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114993 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/string_piece.h')
-rw-r--r--base/string_piece.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/base/string_piece.h b/base/string_piece.h
index 278c7b6..5e420c1 100644
--- a/base/string_piece.h
+++ b/base/string_piece.h
@@ -60,6 +60,10 @@ class BASE_EXPORT StringPiece {
: ptr_(str.data()), length_(str.size()) { }
StringPiece(const char* offset, size_type len)
: ptr_(offset), length_(len) { }
+ StringPiece(const std::string::const_iterator& begin,
+ const std::string::const_iterator& end)
+ : ptr_((end > begin) ? &(*begin) : NULL),
+ length_((end > begin) ? (size_type)(end - begin) : 0) { }
// data() may return a pointer to a buffer with embedded NULs, and the
// returned buffer may or may not be null terminated. Therefore it is
@@ -197,6 +201,10 @@ class BASE_EXPORT StringPiece16 {
: ptr_(str.data()), length_(str.size()) { }
StringPiece16(const char16* offset, size_type len)
: ptr_(offset), length_(len) { }
+ StringPiece16(const string16::const_iterator& begin,
+ const string16::const_iterator& end)
+ : ptr_((end > begin) ? &(*begin) : NULL),
+ length_((end > begin) ? (size_type)(end - begin) : 0) { }
// data() may return a pointer to a buffer with embedded NULs, and the
// returned buffer may or may not be null terminated. Therefore it is