Title: [143152] trunk/Source/WebCore
Revision
143152
Author
[email protected]
Date
2013-02-17 22:44:13 -0800 (Sun, 17 Feb 2013)

Log Message

Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated.
https://bugs.webkit.org/show_bug.cgi?id=110038

Reviewed by Andreas Kling.

No functional changes, covered by existing tests.

* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here.
(WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg.
(WebCore::SelectorDataList::queryFirst): Ditto.
(WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here.
(WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here.
(WebCore::SelectorQuery::queryAll): Ditto.
(WebCore::SelectorQuery::queryFirst): Ditto.
* dom/SelectorQuery.h:
(WebCore): Tweaked headers to make SelectorChecker just an implementation detail.
(SelectorDataList): Tweaked decls to remove SelectorChecker args.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (143151 => 143152)


--- trunk/Source/WebCore/ChangeLog	2013-02-18 06:38:12 UTC (rev 143151)
+++ trunk/Source/WebCore/ChangeLog	2013-02-18 06:44:13 UTC (rev 143152)
@@ -1,5 +1,26 @@
 2013-02-17  Dimitri Glazkov  <[email protected]>
 
+        Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated.
+        https://bugs.webkit.org/show_bug.cgi?id=110038
+
+        Reviewed by Andreas Kling.
+
+        No functional changes, covered by existing tests.
+
+        * dom/SelectorQuery.cpp:
+        (WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here.
+        (WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg.
+        (WebCore::SelectorDataList::queryFirst): Ditto.
+        (WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here.
+        (WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here.
+        (WebCore::SelectorQuery::queryAll): Ditto.
+        (WebCore::SelectorQuery::queryFirst): Ditto.
+        * dom/SelectorQuery.h:
+        (WebCore): Tweaked headers to make SelectorChecker just an implementation detail.
+        (SelectorDataList): Tweaked decls to remove SelectorChecker args.
+
+2013-02-17  Dimitri Glazkov  <[email protected]>
+
         Stop passing around SelectorChecker in ContentSelectorQuery.
         https://bugs.webkit.org/show_bug.cgi?id=110041
 

Modified: trunk/Source/WebCore/dom/SelectorQuery.cpp (143151 => 143152)


--- trunk/Source/WebCore/dom/SelectorQuery.cpp	2013-02-18 06:38:12 UTC (rev 143151)
+++ trunk/Source/WebCore/dom/SelectorQuery.cpp	2013-02-18 06:44:13 UTC (rev 143152)
@@ -29,9 +29,9 @@
 #include "CSSParser.h"
 #include "CSSSelectorList.h"
 #include "Document.h"
+#include "SelectorChecker.h"
 #include "StaticNodeList.h"
 #include "StyledElement.h"
-#include <wtf/HashMap.h>
 
 namespace WebCore {
 
@@ -48,10 +48,11 @@
         m_selectors.uncheckedAppend(SelectorData(selector, SelectorChecker::isFastCheckableSelector(selector)));
 }
 
-bool SelectorDataList::matches(const SelectorChecker& selectorChecker, Element* targetElement) const
+bool SelectorDataList::matches(Element* targetElement) const
 {
     ASSERT(targetElement);
 
+    SelectorChecker selectorChecker(targetElement->document(), SelectorChecker::ResolvingStyle);
     unsigned selectorCount = m_selectors.size();
     for (unsigned i = 0; i < selectorCount; ++i) {
         if (selectorChecker.matches(m_selectors[i].selector, targetElement, m_selectors[i].isFastCheckable))
@@ -61,17 +62,17 @@
     return false;
 }
 
-PassRefPtr<NodeList> SelectorDataList::queryAll(const SelectorChecker& selectorChecker, Node* rootNode) const
+PassRefPtr<NodeList> SelectorDataList::queryAll(Node* rootNode) const
 {
     Vector<RefPtr<Node> > result;
-    execute<false>(selectorChecker, rootNode, result);
+    execute<false>(rootNode, result);
     return StaticNodeList::adopt(result);
 }
 
-PassRefPtr<Element> SelectorDataList::queryFirst(const SelectorChecker& selectorChecker, Node* rootNode) const
+PassRefPtr<Element> SelectorDataList::queryFirst(Node* rootNode) const
 {
     Vector<RefPtr<Node> > result;
-    execute<true>(selectorChecker, rootNode, result);
+    execute<true>(rootNode, result);
     if (result.isEmpty())
         return 0;
     ASSERT(result.size() == 1);
@@ -103,8 +104,10 @@
 }
 
 template <bool firstMatchOnly>
-void SelectorDataList::execute(const SelectorChecker& selectorChecker, Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const
+void SelectorDataList::execute(Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const
 {
+    SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules);
+
     if (canUseIdLookup(rootNode)) {
         ASSERT(m_selectors.size() == 1);
         const CSSSelector* selector = m_selectors[0].selector;
@@ -152,20 +155,17 @@
 
 bool SelectorQuery::matches(Element* element) const
 {
-    SelectorChecker selectorChecker(element->document(), SelectorChecker::ResolvingStyle);
-    return m_selectors.matches(selectorChecker, element);
+    return m_selectors.matches(element);
 }
 
 PassRefPtr<NodeList> SelectorQuery::queryAll(Node* rootNode) const
 {
-    SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules);
-    return m_selectors.queryAll(selectorChecker, rootNode);
+    return m_selectors.queryAll(rootNode);
 }
 
 PassRefPtr<Element> SelectorQuery::queryFirst(Node* rootNode) const
 {
-    SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules);
-    return m_selectors.queryFirst(selectorChecker, rootNode);
+    return m_selectors.queryFirst(rootNode);
 }
 
 SelectorQuery* SelectorQueryCache::add(const AtomicString& selectors, Document* document, ExceptionCode& ec)

Modified: trunk/Source/WebCore/dom/SelectorQuery.h (143151 => 143152)


--- trunk/Source/WebCore/dom/SelectorQuery.h	2013-02-18 06:38:12 UTC (rev 143151)
+++ trunk/Source/WebCore/dom/SelectorQuery.h	2013-02-18 06:44:13 UTC (rev 143152)
@@ -27,14 +27,16 @@
 #define SelectorQuery_h
 
 #include "CSSSelectorList.h"
-#include "SelectorChecker.h"
+#include <wtf/HashMap.h>
 #include <wtf/Vector.h>
+#include <wtf/text/AtomicStringHash.h>
 
 namespace WebCore {
 
 typedef int ExceptionCode;
     
 class CSSSelector;
+class Document;
 class Element;
 class Node;
 class NodeList;
@@ -42,9 +44,9 @@
 class SelectorDataList {
 public:
     void initialize(const CSSSelectorList&);
-    bool matches(const SelectorChecker&, Element*) const;
-    PassRefPtr<NodeList> queryAll(const SelectorChecker&, Node* rootNode) const;
-    PassRefPtr<Element> queryFirst(const SelectorChecker&, Node* rootNode) const;
+    bool matches(Element*) const;
+    PassRefPtr<NodeList> queryAll(Node* rootNode) const;
+    PassRefPtr<Element> queryFirst(Node* rootNode) const;
 
 private:
     struct SelectorData {
@@ -55,7 +57,7 @@
 
     bool canUseIdLookup(Node* rootNode) const;
     template <bool firstMatchOnly>
-    void execute(const SelectorChecker&, Node* rootNode, Vector<RefPtr<Node> >&) const;
+    void execute(Node* rootNode, Vector<RefPtr<Node> >&) const;
 
     Vector<SelectorData> m_selectors;
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to