Chromium Code Reviews| Index: Source/core/dom/NodeTraversal.h |
| diff --git a/Source/core/dom/NodeTraversal.h b/Source/core/dom/NodeTraversal.h |
| index 438b0c09a29d4cf9f8181ae17ed7c789af8a0926..780082944795832fdadab1f698eac898f5eb6c7c 100644 |
| --- a/Source/core/dom/NodeTraversal.h |
| +++ b/Source/core/dom/NodeTraversal.h |
| @@ -26,6 +26,7 @@ |
| #define NodeTraversal_h |
| #include "core/dom/Node.h" |
| +#include "wtf/TreeNode.h" |
| namespace WebCore { |
| @@ -67,53 +68,17 @@ Node* nextIncludingPseudoSkippingChildren(const Node&, const Node* stayWithin = |
| Node* nextAncestorSibling(const Node&); |
| Node* nextAncestorSibling(const Node&, const Node* stayWithin); |
| -template <class NodeType> |
| -inline Node* traverseNextTemplate(NodeType& current) |
| -{ |
| - if (current.firstChild()) |
| - return current.firstChild(); |
| - if (current.nextSibling()) |
| - return current.nextSibling(); |
| - return nextAncestorSibling(current); |
| -} |
| -inline Node* next(const Node& current) { return traverseNextTemplate(current); } |
| -inline Node* next(const ContainerNode& current) { return traverseNextTemplate(current); } |
| - |
| -template <class NodeType> |
| -inline Node* traverseNextTemplate(NodeType& current, const Node* stayWithin) |
| -{ |
| - if (current.firstChild()) |
| - return current.firstChild(); |
| - if (current == stayWithin) |
| - return 0; |
| - if (current.nextSibling()) |
| - return current.nextSibling(); |
| - return nextAncestorSibling(current, stayWithin); |
| -} |
| -inline Node* next(const Node& current, const Node* stayWithin) { return traverseNextTemplate(current, stayWithin); } |
| -inline Node* next(const ContainerNode& current, const Node* stayWithin) { return traverseNextTemplate(current, stayWithin); } |
| - |
| -template <class NodeType> |
| -inline Node* traverseNextSkippingChildrenTemplate(NodeType& current) |
| -{ |
| - if (current.nextSibling()) |
| - return current.nextSibling(); |
| - return nextAncestorSibling(current); |
| -} |
| -inline Node* nextSkippingChildren(const Node& current) { return traverseNextSkippingChildrenTemplate(current); } |
| -inline Node* nextSkippingChildren(const ContainerNode& current) { return traverseNextSkippingChildrenTemplate(current); } |
| - |
| -template <class NodeType> |
| -inline Node* traverseNextSkippingChildrenTemplate(NodeType& current, const Node* stayWithin) |
| -{ |
| - if (current == stayWithin) |
| - return 0; |
| - if (current.nextSibling()) |
| - return current.nextSibling(); |
| - return nextAncestorSibling(current, stayWithin); |
| -} |
| -inline Node* nextSkippingChildren(const Node& current, const Node* stayWithin) { return traverseNextSkippingChildrenTemplate(current, stayWithin); } |
| -inline Node* nextSkippingChildren(const ContainerNode& current, const Node* stayWithin) { return traverseNextSkippingChildrenTemplate(current, stayWithin); } |
| +inline Node* next(const Node& current) { return WTF::traverseNext(current); } |
|
Inactive
2014/01/07 14:37:03
We should not need the WTF:: prefixes.
|
| +inline Node* next(const ContainerNode& current) { return WTF::traverseNext<Node, ContainerNode>(current); } |
| + |
| +inline Node* next(const Node& current, const Node* stayWithin) { return WTF::traverseNext(current, stayWithin); } |
| +inline Node* next(const ContainerNode& current, const Node* stayWithin) { return WTF::traverseNext<Node, ContainerNode>(current, stayWithin); } |
| + |
| +inline Node* nextSkippingChildren(const Node& current) { return WTF::traverseNextSkippingChildren(current); } |
| +inline Node* nextSkippingChildren(const ContainerNode& current) { return WTF::traverseNextSkippingChildren<Node, ContainerNode>(current); } |
| + |
| +inline Node* nextSkippingChildren(const Node& current, const Node* stayWithin) { return WTF::traverseNextSkippingChildren(current, stayWithin); } |
| +inline Node* nextSkippingChildren(const ContainerNode& current, const Node* stayWithin) { return WTF::traverseNextSkippingChildren<Node, ContainerNode>(current, stayWithin); } |
| } |