Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: base/string_piece.cc

Issue 3089004: Mac: Some clang appeasing. (Closed)
Patch Set: '' Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete_popup_model.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // Copied from strings/stringpiece.cc with modifications 4 // Copied from strings/stringpiece.cc with modifications
5 5
6 #include <algorithm> 6 #include <algorithm>
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "base/string_piece.h" 9 #include "base/string_piece.h"
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 s.ptr_, s.ptr_ + s.length_); 47 s.ptr_, s.ptr_ + s.length_);
48 const size_type xpos = result - ptr_; 48 const size_type xpos = result - ptr_;
49 return xpos + s.length_ <= length_ ? xpos : npos; 49 return xpos + s.length_ <= length_ ? xpos : npos;
50 } 50 }
51 51
52 size_type StringPiece::find(char c, size_type pos) const { 52 size_type StringPiece::find(char c, size_type pos) const {
53 if (pos >= length_) 53 if (pos >= length_)
54 return npos; 54 return npos;
55 55
56 const char* result = std::find(ptr_ + pos, ptr_ + length_, c); 56 const char* result = std::find(ptr_ + pos, ptr_ + length_, c);
57 return result != ptr_ + length_ ? result - ptr_ : npos; 57 return result != ptr_ + length_ ? static_cast<size_t>(result - ptr_) : npos;
58 } 58 }
59 59
60 size_type StringPiece::rfind(const StringPiece& s, size_type pos) const { 60 size_type StringPiece::rfind(const StringPiece& s, size_type pos) const {
61 if (length_ < s.length_) 61 if (length_ < s.length_)
62 return npos; 62 return npos;
63 63
64 if (s.empty()) 64 if (s.empty())
65 return std::min(length_, pos); 65 return std::min(length_, pos);
66 66
67 const char* last = ptr_ + std::min(length_ - s.length_, pos) + s.length_; 67 const char* last = ptr_ + std::min(length_ - s.length_, pos) + s.length_;
68 const char* result = std::find_end(ptr_, last, s.ptr_, s.ptr_ + s.length_); 68 const char* result = std::find_end(ptr_, last, s.ptr_, s.ptr_ + s.length_);
69 return result != last ? result - ptr_ : npos; 69 return result != last ? static_cast<size_t>(result - ptr_) : npos;
70 } 70 }
71 71
72 size_type StringPiece::rfind(char c, size_type pos) const { 72 size_type StringPiece::rfind(char c, size_type pos) const {
73 if (length_ == 0) 73 if (length_ == 0)
74 return npos; 74 return npos;
75 75
76 for (size_type i = std::min(pos, length_ - 1); ; --i) { 76 for (size_type i = std::min(pos, length_ - 1); ; --i) {
77 if (ptr_[i] == c) 77 if (ptr_[i] == c)
78 return i; 78 return i;
79 if (i == 0) 79 if (i == 0)
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 210
211 StringPiece StringPiece::substr(size_type pos, size_type n) const { 211 StringPiece StringPiece::substr(size_type pos, size_type n) const {
212 if (pos > length_) pos = length_; 212 if (pos > length_) pos = length_;
213 if (n > length_ - pos) n = length_ - pos; 213 if (n > length_ - pos) n = length_ - pos;
214 return StringPiece(ptr_ + pos, n); 214 return StringPiece(ptr_ + pos, n);
215 } 215 }
216 216
217 const StringPiece::size_type StringPiece::npos = size_type(-1); 217 const StringPiece::size_type StringPiece::npos = size_type(-1);
218 218
219 } // namespace base 219 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete_popup_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698