Changeset 143152 in webkit


Ignore:
Timestamp:
Feb 17, 2013, 10:44:13 PM (12 years ago)
Author:
Dimitri Glazkov
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.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r143150 r143152  
     12013-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
    1222013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>
    223
  • trunk/Source/WebCore/dom/SelectorQuery.cpp

    r142717 r143152  
    3030#include "CSSSelectorList.h"
    3131#include "Document.h"
     32#include "SelectorChecker.h"
    3233#include "StaticNodeList.h"
    3334#include "StyledElement.h"
    34 #include <wtf/HashMap.h>
    3535
    3636namespace WebCore {
     
    4949}
    5050
    51 bool SelectorDataList::matches(const SelectorChecker& selectorChecker, Element* targetElement) const
     51bool SelectorDataList::matches(Element* targetElement) const
    5252{
    5353    ASSERT(targetElement);
    5454
     55    SelectorChecker selectorChecker(targetElement->document(), SelectorChecker::ResolvingStyle);
    5556    unsigned selectorCount = m_selectors.size();
    5657    for (unsigned i = 0; i < selectorCount; ++i) {
     
    6263}
    6364
    64 PassRefPtr<NodeList> SelectorDataList::queryAll(const SelectorChecker& selectorChecker, Node* rootNode) const
     65PassRefPtr<NodeList> SelectorDataList::queryAll(Node* rootNode) const
    6566{
    6667    Vector<RefPtr<Node> > result;
    67     execute<false>(selectorChecker, rootNode, result);
     68    execute<false>(rootNode, result);
    6869    return StaticNodeList::adopt(result);
    6970}
    7071
    71 PassRefPtr<Element> SelectorDataList::queryFirst(const SelectorChecker& selectorChecker, Node* rootNode) const
     72PassRefPtr<Element> SelectorDataList::queryFirst(Node* rootNode) const
    7273{
    7374    Vector<RefPtr<Node> > result;
    74     execute<true>(selectorChecker, rootNode, result);
     75    execute<true>(rootNode, result);
    7576    if (result.isEmpty())
    7677        return 0;
     
    104105
    105106template <bool firstMatchOnly>
    106 void SelectorDataList::execute(const SelectorChecker& selectorChecker, Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const
    107 {
     107void SelectorDataList::execute(Node* rootNode, Vector<RefPtr<Node> >& matchedElements) const
     108{
     109    SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules);
     110
    108111    if (canUseIdLookup(rootNode)) {
    109112        ASSERT(m_selectors.size() == 1);
     
    153156bool SelectorQuery::matches(Element* element) const
    154157{
    155     SelectorChecker selectorChecker(element->document(), SelectorChecker::ResolvingStyle);
    156     return m_selectors.matches(selectorChecker, element);
     158    return m_selectors.matches(element);
    157159}
    158160
    159161PassRefPtr<NodeList> SelectorQuery::queryAll(Node* rootNode) const
    160162{
    161     SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules);
    162     return m_selectors.queryAll(selectorChecker, rootNode);
     163    return m_selectors.queryAll(rootNode);
    163164}
    164165
    165166PassRefPtr<Element> SelectorQuery::queryFirst(Node* rootNode) const
    166167{
    167     SelectorChecker selectorChecker(rootNode->document(), SelectorChecker::QueryingRules);
    168     return m_selectors.queryFirst(selectorChecker, rootNode);
     168    return m_selectors.queryFirst(rootNode);
    169169}
    170170
  • trunk/Source/WebCore/dom/SelectorQuery.h

    r140530 r143152  
    2828
    2929#include "CSSSelectorList.h"
    30 #include "SelectorChecker.h"
     30#include <wtf/HashMap.h>
    3131#include <wtf/Vector.h>
     32#include <wtf/text/AtomicStringHash.h>
    3233
    3334namespace WebCore {
     
    3637   
    3738class CSSSelector;
     39class Document;
    3840class Element;
    3941class Node;
     
    4345public:
    4446    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;
    4850
    4951private:
     
    5658    bool canUseIdLookup(Node* rootNode) const;
    5759    template <bool firstMatchOnly>
    58     void execute(const SelectorChecker&, Node* rootNode, Vector<RefPtr<Node> >&) const;
     60    void execute(Node* rootNode, Vector<RefPtr<Node> >&) const;
    5961
    6062    Vector<SelectorData> m_selectors;
Note: See TracChangeset for help on using the changeset viewer.