Changeset 143152 in webkit
- Timestamp:
- Feb 17, 2013, 10:44:13 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r143150 r143152 1 2013-02-17 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated. 4 https://bugs.webkit.org/show_bug.cgi?id=110038 5 6 Reviewed by Andreas Kling. 7 8 No functional changes, covered by existing tests. 9 10 * dom/SelectorQuery.cpp: 11 (WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here. 12 (WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg. 13 (WebCore::SelectorDataList::queryFirst): Ditto. 14 (WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here. 15 (WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here. 16 (WebCore::SelectorQuery::queryAll): Ditto. 17 (WebCore::SelectorQuery::queryFirst): Ditto. 18 * dom/SelectorQuery.h: 19 (WebCore): Tweaked headers to make SelectorChecker just an implementation detail. 20 (SelectorDataList): Tweaked decls to remove SelectorChecker args. 21 1 22 2013-02-17 Dimitri Glazkov <dglazkov@chromium.org> 2 23 -
trunk/Source/WebCore/dom/SelectorQuery.cpp
r142717 r143152 30 30 #include "CSSSelectorList.h" 31 31 #include "Document.h" 32 #include "SelectorChecker.h" 32 33 #include "StaticNodeList.h" 33 34 #include "StyledElement.h" 34 #include <wtf/HashMap.h>35 35 36 36 namespace WebCore { … … 49 49 } 50 50 51 bool SelectorDataList::matches( const SelectorChecker& selectorChecker,Element* targetElement) const51 bool SelectorDataList::matches(Element* targetElement) const 52 52 { 53 53 ASSERT(targetElement); 54 54 55 SelectorChecker selectorChecker(targetElement->document(), SelectorChecker::ResolvingStyle); 55 56 unsigned selectorCount = m_selectors.size(); 56 57 for (unsigned i = 0; i < selectorCount; ++i) { … … 62 63 } 63 64 64 PassRefPtr<NodeList> SelectorDataList::queryAll( const SelectorChecker& selectorChecker,Node* rootNode) const65 PassRefPtr<NodeList> SelectorDataList::queryAll(Node* rootNode) const 65 66 { 66 67 Vector<RefPtr<Node> > result; 67 execute<false>( selectorChecker,rootNode, result);68 execute<false>(rootNode, result); 68 69 return StaticNodeList::adopt(result); 69 70 } 70 71 71 PassRefPtr<Element> SelectorDataList::queryFirst( const SelectorChecker& selectorChecker,Node* rootNode) const72 PassRefPtr<Element> SelectorDataList::queryFirst(Node* rootNode) const 72 73 { 73 74 Vector<RefPtr<Node> > result; 74 execute<true>( selectorChecker,rootNode, result);75 execute<true>(rootNode, result); 75 76 if (result.isEmpty()) 76 77 return 0; … … 104 105 105 106 template <bool firstMatchOnly> 106 void SelectorDataList::execute(const SelectorChecker& selectorChecker, Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const 107 { 107 void SelectorDataList::execute(Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const 108 { 109 SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules); 110 108 111 if (canUseIdLookup(rootNode)) { 109 112 ASSERT(m_selectors.size() == 1); … … 153 156 bool SelectorQuery::matches(Element* element) const 154 157 { 155 SelectorChecker selectorChecker(element->document(), SelectorChecker::ResolvingStyle); 156 return m_selectors.matches(selectorChecker, element); 158 return m_selectors.matches(element); 157 159 } 158 160 159 161 PassRefPtr<NodeList> SelectorQuery::queryAll(Node* rootNode) const 160 162 { 161 SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules); 162 return m_selectors.queryAll(selectorChecker, rootNode); 163 return m_selectors.queryAll(rootNode); 163 164 } 164 165 165 166 PassRefPtr<Element> SelectorQuery::queryFirst(Node* rootNode) const 166 167 { 167 SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules); 168 return m_selectors.queryFirst(selectorChecker, rootNode); 168 return m_selectors.queryFirst(rootNode); 169 169 } 170 170 -
trunk/Source/WebCore/dom/SelectorQuery.h
r140530 r143152 28 28 29 29 #include "CSSSelectorList.h" 30 #include "SelectorChecker.h"30 #include <wtf/HashMap.h> 31 31 #include <wtf/Vector.h> 32 #include <wtf/text/AtomicStringHash.h> 32 33 33 34 namespace WebCore { … … 36 37 37 38 class CSSSelector; 39 class Document; 38 40 class Element; 39 41 class Node; … … 43 45 public: 44 46 void initialize(const CSSSelectorList&); 45 bool matches( const SelectorChecker&,Element*) const;46 PassRefPtr<NodeList> queryAll( const SelectorChecker&,Node* rootNode) const;47 PassRefPtr<Element> queryFirst( const SelectorChecker&,Node* rootNode) const;47 bool matches(Element*) const; 48 PassRefPtr<NodeList> queryAll(Node* rootNode) const; 49 PassRefPtr<Element> queryFirst(Node* rootNode) const; 48 50 49 51 private: … … 56 58 bool canUseIdLookup(Node* rootNode) const; 57 59 template <bool firstMatchOnly> 58 void execute( const SelectorChecker&,Node* rootNode, Vector<RefPtr<Node> >&) const;60 void execute(Node* rootNode, Vector<RefPtr<Node> >&) const; 59 61 60 62 Vector<SelectorData> m_selectors;
Note:
See TracChangeset
for help on using the changeset viewer.