Title: [118748] trunk/Source/WebCore
- Revision
- 118748
- Author
- [email protected]
- Date
- 2012-05-29 03:42:47 -0700 (Tue, 29 May 2012)
Log Message
Remove m_rootNode and m_selectorChecker from SelectorQuery.h
https://bugs.webkit.org/show_bug.cgi?id=87650
Reviewed by Antti Koivisto.
To avoid parsing CSS selectors every time, I am planning to cache
SelectorQuery objects into a HashMap, which will be defined in
Node::querySelector(). To make the size of SelectorQuery small,
this patch removes m_rootNode and m_selectorChecker from SelectorQuery.h.
Tests: fast/dom/SelectorAPI/*. No change in test results.
* dom/Node.cpp:
(WebCore::Node::querySelector):
(WebCore::Node::querySelectorAll):
* dom/SelectorQuery.cpp:
(WebCore::SelectorQuery::SelectorQuery):
(WebCore):
(WebCore::SelectorQuery::queryAll):
(WebCore::SelectorQuery::queryFirst):
* dom/SelectorQuery.h:
(SelectorQuery):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (118747 => 118748)
--- trunk/Source/WebCore/ChangeLog 2012-05-29 10:06:05 UTC (rev 118747)
+++ trunk/Source/WebCore/ChangeLog 2012-05-29 10:42:47 UTC (rev 118748)
@@ -1,3 +1,28 @@
+2012-05-29 Kentaro Hara <[email protected]>
+
+ Remove m_rootNode and m_selectorChecker from SelectorQuery.h
+ https://bugs.webkit.org/show_bug.cgi?id=87650
+
+ Reviewed by Antti Koivisto.
+
+ To avoid parsing CSS selectors every time, I am planning to cache
+ SelectorQuery objects into a HashMap, which will be defined in
+ Node::querySelector(). To make the size of SelectorQuery small,
+ this patch removes m_rootNode and m_selectorChecker from SelectorQuery.h.
+
+ Tests: fast/dom/SelectorAPI/*. No change in test results.
+
+ * dom/Node.cpp:
+ (WebCore::Node::querySelector):
+ (WebCore::Node::querySelectorAll):
+ * dom/SelectorQuery.cpp:
+ (WebCore::SelectorQuery::SelectorQuery):
+ (WebCore):
+ (WebCore::SelectorQuery::queryAll):
+ (WebCore::SelectorQuery::queryFirst):
+ * dom/SelectorQuery.h:
+ (SelectorQuery):
+
2012-05-29 Eugene Klyuchnikov <[email protected]>
Web Inspector: Tabbed Settings Screen
Modified: trunk/Source/WebCore/dom/Node.cpp (118747 => 118748)
--- trunk/Source/WebCore/dom/Node.cpp 2012-05-29 10:06:05 UTC (rev 118747)
+++ trunk/Source/WebCore/dom/Node.cpp 2012-05-29 10:42:47 UTC (rev 118748)
@@ -1693,8 +1693,8 @@
return 0;
}
- SelectorQuery selectorQuery(this, querySelectorList);
- return selectorQuery.queryFirst();
+ SelectorQuery selectorQuery(querySelectorList);
+ return selectorQuery.queryFirst(this);
}
PassRefPtr<NodeList> Node::querySelectorAll(const String& selectors, ExceptionCode& ec)
@@ -1718,8 +1718,8 @@
return 0;
}
- SelectorQuery selectorQuery(this, querySelectorList);
- return selectorQuery.queryAll();
+ SelectorQuery selectorQuery(querySelectorList);
+ return selectorQuery.queryAll(this);
}
Document *Node::ownerDocument() const
Modified: trunk/Source/WebCore/dom/SelectorQuery.cpp (118747 => 118748)
--- trunk/Source/WebCore/dom/SelectorQuery.cpp 2012-05-29 10:06:05 UTC (rev 118747)
+++ trunk/Source/WebCore/dom/SelectorQuery.cpp 2012-05-29 10:42:47 UTC (rev 118748)
@@ -146,22 +146,24 @@
}
}
-SelectorQuery::SelectorQuery(Node* rootNode, const CSSSelectorList& selectorList)
- : m_rootNode(rootNode)
- , m_selectorChecker(rootNode->document(), !rootNode->document()->inQuirksMode())
- , m_selectors(selectorList)
+SelectorQuery::SelectorQuery(const CSSSelectorList& selectorList)
+ : m_selectors(selectorList)
{
- m_selectorChecker.setMode(SelectorChecker::QueryingRules);
}
-PassRefPtr<NodeList> SelectorQuery::queryAll() const
+
+PassRefPtr<NodeList> SelectorQuery::queryAll(Node* rootNode) const
{
- return m_selectors.queryAll(m_selectorChecker, m_rootNode);
+ SelectorChecker selectorChecker(rootNode->document(), !rootNode->document()->inQuirksMode());
+ selectorChecker.setMode(SelectorChecker::QueryingRules);
+ return m_selectors.queryAll(selectorChecker, rootNode);
}
-PassRefPtr<Element> SelectorQuery::queryFirst() const
+PassRefPtr<Element> SelectorQuery::queryFirst(Node* rootNode) const
{
- return m_selectors.queryFirst(m_selectorChecker, m_rootNode);
+ SelectorChecker selectorChecker(rootNode->document(), !rootNode->document()->inQuirksMode());
+ selectorChecker.setMode(SelectorChecker::QueryingRules);
+ return m_selectors.queryFirst(selectorChecker, rootNode);
}
}
Modified: trunk/Source/WebCore/dom/SelectorQuery.h (118747 => 118748)
--- trunk/Source/WebCore/dom/SelectorQuery.h 2012-05-29 10:06:05 UTC (rev 118747)
+++ trunk/Source/WebCore/dom/SelectorQuery.h 2012-05-29 10:42:47 UTC (rev 118748)
@@ -67,13 +67,11 @@
class SelectorQuery {
WTF_MAKE_NONCOPYABLE(SelectorQuery);
public:
- SelectorQuery(Node* rootNode, const CSSSelectorList&);
+ SelectorQuery(const CSSSelectorList&);
- PassRefPtr<NodeList> queryAll() const;
- PassRefPtr<Element> queryFirst() const;
+ PassRefPtr<NodeList> queryAll(Node* rootNode) const;
+ PassRefPtr<Element> queryFirst(Node* rootNode) const;
private:
- Node* m_rootNode;
- SelectorChecker m_selectorChecker;
SelectorDataList m_selectors;
};
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes