Pass CSSSelector pointers around as const after parsing stage.
<http://webkit.org/b/107645>
Reviewed by Antti Koivisto.
Have CSSSelectorList vend const CSSSelector* and make the style resolution code
operate on const pointers instead.
This gives us some compile-time confidence that nobody is changing the selectors
after we've parsed them.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::operator==):
(WebCore::CSSSelector::selectorText):
(WebCore::CSSSelector::parseNth):
(WebCore::CSSSelector::matchNth):
* css/CSSSelector.h:
(CSSSelector):
(WebCore::CSSSelector::tagHistory):
(WebCore::CSSSelector::selectorList):
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::selectorsText):
(WebCore::forEachTagSelector):
(WebCore::forEachSelector):
(WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
(WebCore::SelectorHasInvalidSelectorFunctor::operator()):
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::first):
(CSSSelectorList):
(WebCore::CSSSelectorList::selectorAt):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter):
(WebCore::CSSSelectorList::next):
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::generateSelectorText):
* css/RuleSet.cpp:
(WebCore::selectorListContainsUncommonAttributeSelector):
(WebCore::collectFeaturesFromRuleData):
* css/RuleSet.h:
(WebCore::RuleData::selector):
(WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
(RuleSetSelectorPair):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matches):
(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::checkScrollbarPseudoClass):
(WebCore::SelectorChecker::determineLinkMatchType):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
(SelectorCheckingContext):
(SelectorChecker):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::determineSelectorScopes):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForRegion):
(WebCore::StyleResolver::checkRegionSelector):
* css/StyleResolver.h:
(StyleResolver):
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::initialize):
(WebCore::SelectorDataList::execute):
* dom/SelectorQuery.h:
(WebCore::SelectorDataList::SelectorData::SelectorData):
(SelectorData):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::collectSelectFeatureSetFrom):
* html/shadow/ContentSelectorQuery.cpp:
(WebCore::ContentSelectorChecker::checkContentSelector):
(WebCore::ContentSelectorDataList::initialize):
* html/shadow/ContentSelectorQuery.h:
(ContentSelectorChecker):
(ContentSelectorDataList):
* html/shadow/HTMLContentElement.cpp:
(WebCore::validateSubSelector):
(WebCore::validateSelector):
(WebCore::HTMLContentElement::validateSelect):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@140530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/inspector/InspectorCSSAgent.cpp b/Source/WebCore/inspector/InspectorCSSAgent.cpp
index 930ec07..3aaf039 100644
--- a/Source/WebCore/inspector/InspectorCSSAgent.cpp
+++ b/Source/WebCore/inspector/InspectorCSSAgent.cpp
@@ -1163,7 +1163,7 @@
RefPtr<TypeBuilder::Array<int> > matchingSelectors = TypeBuilder::Array<int>::create();
const CSSSelectorList& selectorList = rule->styleRule()->selectorList();
long index = 0;
- for (CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) {
+ for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) {
ExceptionCode ec;
bool matched = element->webkitMatchesSelector(selector->selectorText(), ec);
if (matched)