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

Side by Side Diff: cc/base/list_container.h

Issue 1304053016: Mac Overlays: Allow multiple overlays with sandwich strategy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@snapshot
Patch Set: Created 5 years, 3 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 | cc/base/list_container.cc » ('j') | cc/output/overlay_strategy_common.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 4
5 #ifndef CC_BASE_LIST_CONTAINER_H_ 5 #ifndef CC_BASE_LIST_CONTAINER_H_
6 #define CC_BASE_LIST_CONTAINER_H_ 6 #define CC_BASE_LIST_CONTAINER_H_
7 7
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 protected: 137 protected:
138 // This is used to track how many increment has happened since rbegin(). It 138 // This is used to track how many increment has happened since rbegin(). It
139 // is used to avoid double increment at places an index reference is 139 // is used to avoid double increment at places an index reference is
140 // needed. For reverse iterator this means rbegin() corresponds to index 0 140 // needed. For reverse iterator this means rbegin() corresponds to index 0
141 // and rend() corresponds to index |size|. 141 // and rend() corresponds to index |size|.
142 size_t index_; 142 size_t index_;
143 }; 143 };
144 144
145 // Unlike the ListContainer methods, these do not invoke element destructors. 145 // Unlike the ListContainer methods, these do not invoke element destructors.
146 void RemoveLast(); 146 void RemoveLast();
147 void EraseAndInvalidateAllPointers(Iterator position); 147 void EraseAndInvalidateAllPointers(Iterator* position);
148 void InsertBeforeAndInvalidateAllPointers(Iterator* position, 148 void InsertBeforeAndInvalidateAllPointers(Iterator* position,
149 size_t number_of_elements); 149 size_t number_of_elements);
150 150
151 ConstReverseIterator crbegin() const; 151 ConstReverseIterator crbegin() const;
152 ConstReverseIterator crend() const; 152 ConstReverseIterator crend() const;
153 ReverseIterator rbegin(); 153 ReverseIterator rbegin();
154 ReverseIterator rend(); 154 ReverseIterator rend();
155 ConstIterator cbegin() const; 155 ConstIterator cbegin() const;
156 ConstIterator cend() const; 156 ConstIterator cend() const;
157 Iterator begin(); 157 Iterator begin();
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 // Removes the last element of the list and makes its space available for 219 // Removes the last element of the list and makes its space available for
220 // allocation. 220 // allocation.
221 void RemoveLast() { 221 void RemoveLast() {
222 DCHECK(!empty()); 222 DCHECK(!empty());
223 back()->~BaseElementType(); 223 back()->~BaseElementType();
224 ListContainerBase::RemoveLast(); 224 ListContainerBase::RemoveLast();
225 } 225 }
226 226
227 // When called, all raw pointers that have been handed out are no longer 227 // When called, all raw pointers that have been handed out are no longer
228 // valid. Use with caution. 228 // valid. Use with caution.
229 // This function does not deallocate memory. 229 // This function does not deallocate memory.
ccameron 2015/09/02 21:41:55 I'd pass position by pointer here (to match Insert
Andre 2015/09/02 21:54:51 Hmm, but ListContainer::InsertBefore below returns
Andre 2015/09/02 22:08:52 Also, making it take a pointer would make code lik
ccameron 2015/09/02 22:22:33 Yes, you're right, that was a bad suggestion. May
Andre 2015/09/03 22:45:59 Done. This was split off into another CL.
230 void EraseAndInvalidateAllPointers(Iterator position) { 230 Iterator EraseAndInvalidateAllPointers(Iterator position) {
231 BaseElementType* item = *position; 231 BaseElementType* item = *position;
232 item->~BaseElementType(); 232 item->~BaseElementType();
233 ListContainerBase::EraseAndInvalidateAllPointers(position); 233 ListContainerBase::EraseAndInvalidateAllPointers(&position);
234 return position;
234 } 235 }
235 236
236 ConstReverseIterator crbegin() const { 237 ConstReverseIterator crbegin() const {
237 return ConstReverseIterator(ListContainerBase::crbegin()); 238 return ConstReverseIterator(ListContainerBase::crbegin());
238 } 239 }
239 ConstReverseIterator crend() const { 240 ConstReverseIterator crend() const {
240 return ConstReverseIterator(ListContainerBase::crend()); 241 return ConstReverseIterator(ListContainerBase::crend());
241 } 242 }
242 ConstReverseIterator rbegin() const { return crbegin(); } 243 ConstReverseIterator rbegin() const { return crbegin(); }
243 ConstReverseIterator rend() const { return crend(); } 244 ConstReverseIterator rend() const { return crend(); }
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 ListContainerBase::ConstReverseIterator base_iterator) 491 ListContainerBase::ConstReverseIterator base_iterator)
491 : ListContainerBase::ConstReverseIterator(base_iterator) {} 492 : ListContainerBase::ConstReverseIterator(base_iterator) {}
492 friend ConstReverseIterator ListContainer<BaseElementType>::crbegin() const; 493 friend ConstReverseIterator ListContainer<BaseElementType>::crbegin() const;
493 friend ConstReverseIterator ListContainer<BaseElementType>::crend() const; 494 friend ConstReverseIterator ListContainer<BaseElementType>::crend() const;
494 }; 495 };
495 }; 496 };
496 497
497 } // namespace cc 498 } // namespace cc
498 499
499 #endif // CC_BASE_LIST_CONTAINER_H_ 500 #endif // CC_BASE_LIST_CONTAINER_H_
OLDNEW
« no previous file with comments | « no previous file | cc/base/list_container.cc » ('j') | cc/output/overlay_strategy_common.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698