void SelectorDataList::initialize(const CSSSelectorList& selectorList) { ASSERT(m_selectors.isEmpty()); unsigned selectorCount = 0; for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(*selector)) selectorCount++; m_crossesTreeBoundary = false; m_needsUpdatedDistribution = false; m_selectors.reserveInitialCapacity(selectorCount); unsigned index = 0; for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(*selector), ++index) { m_selectors.uncheckedAppend(selector); m_crossesTreeBoundary |= selectorList.selectorCrossesTreeScopes(index); m_needsUpdatedDistribution |= selectorList.selectorNeedsUpdatedDistribution(index); } }
void SelectorDataList::initialize(const CSSSelectorList& selectorList) { ASSERT(m_selectors.isEmpty()); unsigned selectorCount = 0; for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(*selector)) selectorCount++; m_usesDeepCombinatorOrShadowPseudo = false; m_needsUpdatedDistribution = false; m_selectors.reserveInitialCapacity(selectorCount); unsigned index = 0; for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(*selector), ++index) { if (selector->matchesPseudoElement()) continue; m_selectors.uncheckedAppend(selector); m_usesDeepCombinatorOrShadowPseudo |= selectorList.selectorUsesDeepCombinatorOrShadowPseudo(index); m_needsUpdatedDistribution |= selectorList.selectorNeedsUpdatedDistribution(index); } }