diff options
author | tedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-18 17:16:27 +0000 |
---|---|---|
committer | tedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-18 17:16:27 +0000 |
commit | ce87e24351c86bc40b32dca51fe2ebbabc603b1a (patch) | |
tree | 8184c32b18bbda29760be2e1678ad4a6fd7fd539 /base/string_piece.h | |
parent | 71fdf77a393f95290a872bb3916f21c0bf2b4dbc (diff) | |
download | chromium_src-ce87e24351c86bc40b32dca51fe2ebbabc603b1a.zip chromium_src-ce87e24351c86bc40b32dca51fe2ebbabc603b1a.tar.gz chromium_src-ce87e24351c86bc40b32dca51fe2ebbabc603b1a.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
Review URL: http://codereview.chromium.org/8921006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114944 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/string_piece.h')
-rw-r--r-- | base/string_piece.h | 8 |
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 |