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

Unified Diff: Source/core/dom/SelectorQuery.cpp

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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/RenderTreeBuilder.h ('k') | Source/core/dom/shadow/ComposedTreeWalker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/SelectorQuery.cpp
diff --git a/Source/core/dom/SelectorQuery.cpp b/Source/core/dom/SelectorQuery.cpp
index e8d6bd9d915ff8cef1817039787be35a6cf32032..b11faebe862f46386a97da698aabbfddc162b0a9 100644
--- a/Source/core/dom/SelectorQuery.cpp
+++ b/Source/core/dom/SelectorQuery.cpp
@@ -63,10 +63,11 @@ enum ClassElementListBehavior { AllElements, OnlyRoots };
template <ClassElementListBehavior onlyRoots>
class ClassElementList {
+ STACK_ALLOCATED();
public:
ClassElementList(ContainerNode& rootNode, const AtomicString& className)
: m_className(className)
- , m_rootNode(rootNode)
+ , m_rootNode(&rootNode)
, m_currentElement(nextInternal(ElementTraversal::firstWithin(rootNode))) { }
bool isEmpty() const { return !m_currentElement; }
@@ -76,16 +77,16 @@ public:
Element* current = m_currentElement;
ASSERT(current);
if (onlyRoots)
- m_currentElement = nextInternal(ElementTraversal::nextSkippingChildren(*m_currentElement, &m_rootNode));
+ m_currentElement = nextInternal(ElementTraversal::nextSkippingChildren(*m_currentElement, m_rootNode));
else
- m_currentElement = nextInternal(ElementTraversal::next(*m_currentElement, &m_rootNode));
+ m_currentElement = nextInternal(ElementTraversal::next(*m_currentElement, m_rootNode));
return current;
}
private:
Element* nextInternal(Element* element)
{
- for (; element; element = ElementTraversal::next(*element, &m_rootNode)) {
+ for (; element; element = ElementTraversal::next(*element, m_rootNode)) {
if (element->hasClass() && element->classNames().contains(m_className))
return element;
}
@@ -93,8 +94,8 @@ private:
}
const AtomicString& m_className;
- ContainerNode& m_rootNode;
- Element* m_currentElement;
+ RawPtrWillBeMember<ContainerNode> m_rootNode;
+ RawPtrWillBeMember<Element> m_currentElement;
};
void SelectorDataList::initialize(const CSSSelectorList& selectorList)
« no previous file with comments | « Source/core/dom/RenderTreeBuilder.h ('k') | Source/core/dom/shadow/ComposedTreeWalker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698