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

Side by Side Diff: third_party/WebKit/Source/core/dom/NodeTraversal.h

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
7 * Copyright (C) 2014 Samsung Electronics. All rights reserved. 7 * Copyright (C) 2014 Samsung Electronics. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 117
118 template <class Iterator> 118 template <class Iterator>
119 class TraversalRange { 119 class TraversalRange {
120 STACK_ALLOCATED(); 120 STACK_ALLOCATED();
121 public: 121 public:
122 using StartNodeType = typename Iterator::StartNodeType; 122 using StartNodeType = typename Iterator::StartNodeType;
123 explicit TraversalRange(const StartNodeType* start) : m_start(start) { } 123 explicit TraversalRange(const StartNodeType* start) : m_start(start) { }
124 Iterator begin() { return Iterator(m_start); } 124 Iterator begin() { return Iterator(m_start); }
125 Iterator end() { return Iterator::end(); } 125 Iterator end() { return Iterator::end(); }
126 private: 126 private:
127 RawPtrWillBeMember<const StartNodeType> m_start; 127 Member<const StartNodeType> m_start;
128 }; 128 };
129 129
130 template <class TraversalNext> 130 template <class TraversalNext>
131 class TraversalIteratorBase { 131 class TraversalIteratorBase {
132 STACK_ALLOCATED(); 132 STACK_ALLOCATED();
133 public: 133 public:
134 using NodeType = typename TraversalNext::TraversalNodeType; 134 using NodeType = typename TraversalNext::TraversalNodeType;
135 NodeType& operator*() { return *m_current; } 135 NodeType& operator*() { return *m_current; }
136 bool operator!=(const TraversalIteratorBase& rval) const { return m_current != rval.m_current ; } 136 bool operator!=(const TraversalIteratorBase& rval) const { return m_current != rval.m_current ; }
137 protected: 137 protected:
138 explicit TraversalIteratorBase(NodeType* current) : m_current(current) { } 138 explicit TraversalIteratorBase(NodeType* current) : m_current(current) { }
139 139
140 RawPtrWillBeMember<NodeType> m_current; 140 Member<NodeType> m_current;
141 }; 141 };
142 142
143 template <class TraversalNext> 143 template <class TraversalNext>
144 class TraversalChildrenIterator : public TraversalIteratorBase<TraversalNext> { 144 class TraversalChildrenIterator : public TraversalIteratorBase<TraversalNext> {
145 STACK_ALLOCATED(); 145 STACK_ALLOCATED();
146 public: 146 public:
147 using StartNodeType = Node; 147 using StartNodeType = Node;
148 using TraversalIteratorBase<TraversalNext>::m_current; 148 using TraversalIteratorBase<TraversalNext>::m_current;
149 explicit TraversalChildrenIterator(const StartNodeType* start) : TraversalIt eratorBase<TraversalNext>(TraversalNext::firstWithin(*start)) { } 149 explicit TraversalChildrenIterator(const StartNodeType* start) : TraversalIt eratorBase<TraversalNext>(TraversalNext::firstWithin(*start)) { }
150 void operator++() { m_current = TraversalNext::nextSibling(*m_current); } 150 void operator++() { m_current = TraversalNext::nextSibling(*m_current); }
(...skipping 17 matching lines...) Expand all
168 class TraversalDescendantIterator : public TraversalIteratorBase<TraversalNext> { 168 class TraversalDescendantIterator : public TraversalIteratorBase<TraversalNext> {
169 STACK_ALLOCATED(); 169 STACK_ALLOCATED();
170 public: 170 public:
171 using StartNodeType = Node; 171 using StartNodeType = Node;
172 using TraversalIteratorBase<TraversalNext>::m_current; 172 using TraversalIteratorBase<TraversalNext>::m_current;
173 explicit TraversalDescendantIterator(const StartNodeType* start) : Traversal IteratorBase<TraversalNext>(TraversalNext::firstWithin(*start)), m_root(start) { } 173 explicit TraversalDescendantIterator(const StartNodeType* start) : Traversal IteratorBase<TraversalNext>(TraversalNext::firstWithin(*start)), m_root(start) { }
174 void operator++() { m_current = TraversalNext::next(*m_current, m_root); } 174 void operator++() { m_current = TraversalNext::next(*m_current, m_root); }
175 static TraversalDescendantIterator end() { return TraversalDescendantIterato r(); } 175 static TraversalDescendantIterator end() { return TraversalDescendantIterato r(); }
176 private: 176 private:
177 TraversalDescendantIterator() : TraversalIteratorBase<TraversalNext>(nullptr ), m_root(nullptr) { } 177 TraversalDescendantIterator() : TraversalIteratorBase<TraversalNext>(nullptr ), m_root(nullptr) { }
178 RawPtrWillBeMember<const Node> m_root; 178 Member<const Node> m_root;
179 }; 179 };
180 180
181 template <class TraversalNext> 181 template <class TraversalNext>
182 class TraversalInclusiveDescendantIterator : public TraversalIteratorBase<Traver salNext> { 182 class TraversalInclusiveDescendantIterator : public TraversalIteratorBase<Traver salNext> {
183 STACK_ALLOCATED(); 183 STACK_ALLOCATED();
184 public: 184 public:
185 using StartNodeType = typename TraversalNext::TraversalNodeType; 185 using StartNodeType = typename TraversalNext::TraversalNodeType;
186 using NodeType = typename TraversalNext::TraversalNodeType; 186 using NodeType = typename TraversalNext::TraversalNodeType;
187 using TraversalIteratorBase<TraversalNext>::m_current; 187 using TraversalIteratorBase<TraversalNext>::m_current;
188 explicit TraversalInclusiveDescendantIterator(const StartNodeType* start) : TraversalIteratorBase<TraversalNext>(const_cast<NodeType*>(start)), m_root(start ) { } 188 explicit TraversalInclusiveDescendantIterator(const StartNodeType* start) : TraversalIteratorBase<TraversalNext>(const_cast<NodeType*>(start)), m_root(start ) { }
189 void operator++() { m_current = TraversalNext::next(*m_current, m_root); } 189 void operator++() { m_current = TraversalNext::next(*m_current, m_root); }
190 static TraversalInclusiveDescendantIterator end() { return TraversalInclusiv eDescendantIterator(nullptr); } 190 static TraversalInclusiveDescendantIterator end() { return TraversalInclusiv eDescendantIterator(nullptr); }
191 private: 191 private:
192 RawPtrWillBeMember<const StartNodeType> m_root; 192 Member<const StartNodeType> m_root;
193 }; 193 };
194 194
195 inline TraversalRange<TraversalChildrenIterator<NodeTraversal>> NodeTraversal::c hildrenOf(const Node& parent) 195 inline TraversalRange<TraversalChildrenIterator<NodeTraversal>> NodeTraversal::c hildrenOf(const Node& parent)
196 { 196 {
197 return TraversalRange<TraversalChildrenIterator<NodeTraversal>>(&parent); 197 return TraversalRange<TraversalChildrenIterator<NodeTraversal>>(&parent);
198 } 198 }
199 199
200 inline TraversalRange<TraversalDescendantIterator<NodeTraversal>> NodeTraversal: :descendantsOf(const Node& root) 200 inline TraversalRange<TraversalDescendantIterator<NodeTraversal>> NodeTraversal: :descendantsOf(const Node& root)
201 { 201 {
202 return TraversalRange<TraversalDescendantIterator<NodeTraversal>>(&root); 202 return TraversalRange<TraversalDescendantIterator<NodeTraversal>>(&root);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 { 268 {
269 Node* child = parent.firstChild(); 269 Node* child = parent.firstChild();
270 while (child && index--) 270 while (child && index--)
271 child = child->nextSibling(); 271 child = child->nextSibling();
272 return child; 272 return child;
273 } 273 }
274 274
275 } // namespace blink 275 } // namespace blink
276 276
277 #endif 277 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/NodeRareData.cpp ('k') | third_party/WebKit/Source/core/dom/NodeWithIndex.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698