{
StringBuilder result;
- for (const CSSSelector* s = first(); s; s = next(s)) {
+ for (const CSSSelector* s = first(); s; s = next(*s)) {
if (s != first())
result.append(", ");
result.append(s->selectorText());
}
template <typename Functor>
-static bool forEachTagSelector(Functor& functor, const CSSSelector* selector)
+static bool forEachTagSelector(Functor& functor, const CSSSelector& selector)
{
- ASSERT(selector);
-
+ const CSSSelector* current = &selector;
do {
- if (functor(selector))
+ if (functor(*current))
return true;
- if (const CSSSelectorList* selectorList = selector->selectorList()) {
- for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) {
- if (forEachTagSelector(functor, subSelector))
+ if (const CSSSelectorList* selectorList = current->selectorList()) {
+ for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(*subSelector)) {
+ if (forEachTagSelector(functor, *subSelector))
return true;
}
}
- } while ((selector = selector->tagHistory()));
+ } while ((current = current->tagHistory()));
return false;
}
template <typename Functor>
static bool forEachSelector(Functor& functor, const CSSSelectorList* selectorList)
{
- for (const CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(selector)) {
- if (forEachTagSelector(functor, selector))
+ for (const CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(*selector)) {
+ if (forEachTagSelector(functor, *selector))
return true;
}
class SelectorNeedsNamespaceResolutionFunctor {
public:
- bool operator()(const CSSSelector* selector)
+ bool operator()(const CSSSelector& selector)
{
- if (selector->m_match == CSSSelector::Tag && selector->tagQName().prefix() != nullAtom && selector->tagQName().prefix() != starAtom)
+ if (selector.m_match == CSSSelector::Tag && selector.tagQName().prefix() != nullAtom && selector.tagQName().prefix() != starAtom)
return true;
- if (selector->isAttributeSelector() && selector->attribute().prefix() != nullAtom && selector->attribute().prefix() != starAtom)
+ if (selector.isAttributeSelector() && selector.attribute().prefix() != nullAtom && selector.attribute().prefix() != starAtom)
return true;
return false;
}
class SelectorHasShadowDistributed {
public:
- bool operator()(const CSSSelector* selector)
+ bool operator()(const CSSSelector& selector)
{
- return selector->relationIsAffectedByPseudoContent();
+ return selector.relationIsAffectedByPseudoContent();
}
};
class SelectorHasCombinatorCrossingTreeBoundary {
public:
- bool operator()(const CSSSelector* selector)
+ bool operator()(const CSSSelector& selector)
{
- return selector->relation() == CSSSelector::ChildTree || selector->relation() == CSSSelector::DescendantTree;
+ return selector.relation() == CSSSelector::ChildTree || selector.relation() == CSSSelector::DescendantTree;
}
};