Chromium Code Reviews
DescriptionIntroduce NodeTraversal::ancestorsOf() and inclusiveAncestors() for range-based for loop
This patch introduces |NodeTraversal::ancestorsOf()| and |inclusiveAncestors()|
to reduce source code size by common code pattern for ease of writing code
in addition to |NodeTraversal::childrenOf()|[1], |NodeTraversal::descendansOf()|
and so on.
Before this patch, we should write:
// Loop for ancestors
for (Node* runner = node->parentNode(); runner; runner = runner->parentNode()) {
...
}
// Loop for ancestors or self
for (Node* runner = node; runner; runner = runner->parentNode()) {
...
}
After this patch, you can write:
for (Node& runner : NodeTraversal::ancestorsOf(*node)) {
...
}
for (Node& runner : NodeTraversal::inclusiveAncestorsOf(*node)) {
...
}
[1] https://codereview.chromium.org/642973003 Introduce typed Node/Element
iterators for range-based for loops of C++11
BUG=n/a
TEST=n/a; no behavior changes
Committed: https://crrev.com/95d6f1792e11fefa919d81d1ed7c0d233deafa76
Cr-Commit-Position: refs/heads/master@{#390895}
Patch Set 1 #Patch Set 2 : 2016-04-28T16:44:17 #
Total comments: 5
Patch Set 3 : 2016-04-28T17:38:56 #Patch Set 4 : 2016-04-28T17:43:11 Rename to inclusiveAncestorsOf and fix compilation error in EditingStyle.cpp #Patch Set 5 : 2016-04-28T18:38:12 #Messages
Total messages: 27 (10 generated)
|