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

Side by Side Diff: Source/core/dom/shadow/ComposedTreeWalker.h

Issue 319083004: Oilpan: add Element/Node Member fields to stack allocated objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 6 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 | « Source/core/dom/SelectorQuery.cpp ('k') | Source/core/editing/TextIterator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Neither the name of Google Inc. nor the names of its 10 * * Neither the name of Google Inc. nor the names of its
(...skipping 21 matching lines...) Expand all
32 #include "core/dom/shadow/ShadowRoot.h" 32 #include "core/dom/shadow/ShadowRoot.h"
33 33
34 namespace WebCore { 34 namespace WebCore {
35 35
36 class Node; 36 class Node;
37 class ShadowRoot; 37 class ShadowRoot;
38 38
39 // FIXME: Make some functions inline to optimise the performance. 39 // FIXME: Make some functions inline to optimise the performance.
40 // https://bugs.webkit.org/show_bug.cgi?id=82702 40 // https://bugs.webkit.org/show_bug.cgi?id=82702
41 class ComposedTreeWalker { 41 class ComposedTreeWalker {
42 STACK_ALLOCATED();
42 public: 43 public:
43 typedef NodeRenderingTraversal::ParentDetails ParentTraversalDetails; 44 typedef NodeRenderingTraversal::ParentDetails ParentTraversalDetails;
44 45
45 enum StartPolicy { 46 enum StartPolicy {
46 CanStartFromShadowBoundary, 47 CanStartFromShadowBoundary,
47 CannotStartFromShadowBoundary 48 CannotStartFromShadowBoundary
48 }; 49 };
49 50
50 ComposedTreeWalker(const Node*, StartPolicy = CannotStartFromShadowBoundary) ; 51 ComposedTreeWalker(const Node*, StartPolicy = CannotStartFromShadowBoundary) ;
51 52
52 Node* get() const { return const_cast<Node*>(m_node); } 53 Node* get() const { return const_cast<Node*>(m_node.get()); }
53 54
54 void firstChild(); 55 void firstChild();
55 void lastChild(); 56 void lastChild();
56 57
57 void nextSibling(); 58 void nextSibling();
58 void previousSibling(); 59 void previousSibling();
59 60
60 void parent(); 61 void parent();
61 62
62 void next(); 63 void next();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 static Node* traverseSiblingOrBackToInsertionPoint(const Node*, TraversalDir ection); 103 static Node* traverseSiblingOrBackToInsertionPoint(const Node*, TraversalDir ection);
103 static Node* traverseSiblingInCurrentTree(const Node*, TraversalDirection); 104 static Node* traverseSiblingInCurrentTree(const Node*, TraversalDirection);
104 105
105 static Node* traverseSiblings(const Node*, TraversalDirection); 106 static Node* traverseSiblings(const Node*, TraversalDirection);
106 static Node* traverseDistributedNodes(const Node*, const InsertionPoint*, Tr aversalDirection); 107 static Node* traverseDistributedNodes(const Node*, const InsertionPoint*, Tr aversalDirection);
107 108
108 static Node* traverseBackToYoungerShadowRoot(const Node*, TraversalDirection ); 109 static Node* traverseBackToYoungerShadowRoot(const Node*, TraversalDirection );
109 110
110 Node* traverseParentOrHost(const Node*) const; 111 Node* traverseParentOrHost(const Node*) const;
111 112
112 const Node* m_node; 113 RawPtrWillBeMember<const Node> m_node;
113 }; 114 };
114 115
115 inline ComposedTreeWalker::ComposedTreeWalker(const Node* node, StartPolicy star tPolicy) 116 inline ComposedTreeWalker::ComposedTreeWalker(const Node* node, StartPolicy star tPolicy)
116 : m_node(node) 117 : m_node(node)
117 { 118 {
118 #ifndef NDEBUG 119 #ifndef NDEBUG
119 if (m_node && startPolicy == CannotStartFromShadowBoundary) 120 if (m_node && startPolicy == CannotStartFromShadowBoundary)
120 assertPrecondition(); 121 assertPrecondition();
121 #endif 122 #endif
122 } 123 }
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 207
207 inline Node* ComposedTreeWalker::traverseLastChild(const Node* node) const 208 inline Node* ComposedTreeWalker::traverseLastChild(const Node* node) const
208 { 209 {
209 ASSERT(node); 210 ASSERT(node);
210 return traverseChild(node, TraversalDirectionBackward); 211 return traverseChild(node, TraversalDirectionBackward);
211 } 212 }
212 213
213 } // namespace 214 } // namespace
214 215
215 #endif 216 #endif
OLDNEW
« no previous file with comments | « Source/core/dom/SelectorQuery.cpp ('k') | Source/core/editing/TextIterator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698