Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: third_party/WebKit/Source/core/css/RuleSet.cpp

Issue 2566403003: Migrate WTF::Vector::append() to ::push_back() [part 3 of N] (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
10 * (http://www.torchmobile.com/) 10 * (http://www.torchmobile.com/)
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 } 169 }
170 170
171 bool RuleSet::findBestRuleSetAndAdd(const CSSSelector& component, 171 bool RuleSet::findBestRuleSetAndAdd(const CSSSelector& component,
172 RuleData& ruleData) { 172 RuleData& ruleData) {
173 AtomicString id; 173 AtomicString id;
174 AtomicString className; 174 AtomicString className;
175 AtomicString customPseudoElementName; 175 AtomicString customPseudoElementName;
176 AtomicString tagName; 176 AtomicString tagName;
177 177
178 #ifndef NDEBUG 178 #ifndef NDEBUG
179 m_allRules.append(ruleData); 179 m_allRules.push_back(ruleData);
180 #endif 180 #endif
181 181
182 const CSSSelector* it = &component; 182 const CSSSelector* it = &component;
183 for (; it && it->relation() == CSSSelector::SubSelector; 183 for (; it && it->relation() == CSSSelector::SubSelector;
184 it = it->tagHistory()) 184 it = it->tagHistory())
185 extractValuesforSelector(it, id, className, customPseudoElementName, 185 extractValuesforSelector(it, id, className, customPseudoElementName,
186 tagName); 186 tagName);
187 if (it) 187 if (it)
188 extractValuesforSelector(it, id, className, customPseudoElementName, 188 extractValuesforSelector(it, id, className, customPseudoElementName,
189 tagName); 189 tagName);
(...skipping 13 matching lines...) Expand all
203 // never be a situation where extractValuesforSelector finsd id and 203 // never be a situation where extractValuesforSelector finsd id and
204 // className in addition to custom pseudo. 204 // className in addition to custom pseudo.
205 ASSERT(id.isEmpty() && className.isEmpty()); 205 ASSERT(id.isEmpty() && className.isEmpty());
206 addToRuleSet(customPseudoElementName, 206 addToRuleSet(customPseudoElementName,
207 ensurePendingRules()->shadowPseudoElementRules, ruleData); 207 ensurePendingRules()->shadowPseudoElementRules, ruleData);
208 return true; 208 return true;
209 } 209 }
210 210
211 switch (component.getPseudoType()) { 211 switch (component.getPseudoType()) {
212 case CSSSelector::PseudoCue: 212 case CSSSelector::PseudoCue:
213 m_cuePseudoRules.append(ruleData); 213 m_cuePseudoRules.push_back(ruleData);
214 return true; 214 return true;
215 case CSSSelector::PseudoLink: 215 case CSSSelector::PseudoLink:
216 case CSSSelector::PseudoVisited: 216 case CSSSelector::PseudoVisited:
217 case CSSSelector::PseudoAnyLink: 217 case CSSSelector::PseudoAnyLink:
218 m_linkPseudoClassRules.append(ruleData); 218 m_linkPseudoClassRules.push_back(ruleData);
219 return true; 219 return true;
220 case CSSSelector::PseudoFocus: 220 case CSSSelector::PseudoFocus:
221 m_focusPseudoClassRules.append(ruleData); 221 m_focusPseudoClassRules.push_back(ruleData);
222 return true; 222 return true;
223 case CSSSelector::PseudoPlaceholder: 223 case CSSSelector::PseudoPlaceholder:
224 m_placeholderPseudoRules.append(ruleData); 224 m_placeholderPseudoRules.push_back(ruleData);
225 return true; 225 return true;
226 default: 226 default:
227 break; 227 break;
228 } 228 }
229 229
230 if (!tagName.isEmpty()) { 230 if (!tagName.isEmpty()) {
231 addToRuleSet(tagName, ensurePendingRules()->tagRules, ruleData); 231 addToRuleSet(tagName, ensurePendingRules()->tagRules, ruleData);
232 return true; 232 return true;
233 } 233 }
234 234
235 if (component.isHostPseudoClass()) { 235 if (component.isHostPseudoClass()) {
236 m_shadowHostRules.append(ruleData); 236 m_shadowHostRules.push_back(ruleData);
237 return true; 237 return true;
238 } 238 }
239 239
240 return false; 240 return false;
241 } 241 }
242 242
243 void RuleSet::addRule(StyleRule* rule, 243 void RuleSet::addRule(StyleRule* rule,
244 unsigned selectorIndex, 244 unsigned selectorIndex,
245 AddRuleFlags addRuleFlags) { 245 AddRuleFlags addRuleFlags) {
246 RuleData ruleData(rule, selectorIndex, m_ruleCount++, addRuleFlags); 246 RuleData ruleData(rule, selectorIndex, m_ruleCount++, addRuleFlags);
247 if (m_features.collectFeaturesFromRuleData(ruleData) == 247 if (m_features.collectFeaturesFromRuleData(ruleData) ==
248 RuleFeatureSet::SelectorNeverMatches) 248 RuleFeatureSet::SelectorNeverMatches)
249 return; 249 return;
250 250
251 if (!findBestRuleSetAndAdd(ruleData.selector(), ruleData)) { 251 if (!findBestRuleSetAndAdd(ruleData.selector(), ruleData)) {
252 // If we didn't find a specialized map to stick it in, file under universal 252 // If we didn't find a specialized map to stick it in, file under universal
253 // rules. 253 // rules.
254 m_universalRules.append(ruleData); 254 m_universalRules.push_back(ruleData);
255 } 255 }
256 } 256 }
257 257
258 void RuleSet::addPageRule(StyleRulePage* rule) { 258 void RuleSet::addPageRule(StyleRulePage* rule) {
259 ensurePendingRules(); // So that m_pageRules.shrinkToFit() gets called. 259 ensurePendingRules(); // So that m_pageRules.shrinkToFit() gets called.
260 m_pageRules.append(rule); 260 m_pageRules.push_back(rule);
261 } 261 }
262 262
263 void RuleSet::addFontFaceRule(StyleRuleFontFace* rule) { 263 void RuleSet::addFontFaceRule(StyleRuleFontFace* rule) {
264 ensurePendingRules(); // So that m_fontFaceRules.shrinkToFit() gets called. 264 ensurePendingRules(); // So that m_fontFaceRules.shrinkToFit() gets called.
265 m_fontFaceRules.append(rule); 265 m_fontFaceRules.push_back(rule);
266 } 266 }
267 267
268 void RuleSet::addKeyframesRule(StyleRuleKeyframes* rule) { 268 void RuleSet::addKeyframesRule(StyleRuleKeyframes* rule) {
269 ensurePendingRules(); // So that m_keyframesRules.shrinkToFit() gets called. 269 ensurePendingRules(); // So that m_keyframesRules.shrinkToFit() gets called.
270 m_keyframesRules.append(rule); 270 m_keyframesRules.push_back(rule);
271 } 271 }
272 272
273 void RuleSet::addChildRules(const HeapVector<Member<StyleRuleBase>>& rules, 273 void RuleSet::addChildRules(const HeapVector<Member<StyleRuleBase>>& rules,
274 const MediaQueryEvaluator& medium, 274 const MediaQueryEvaluator& medium,
275 AddRuleFlags addRuleFlags) { 275 AddRuleFlags addRuleFlags) {
276 for (unsigned i = 0; i < rules.size(); ++i) { 276 for (unsigned i = 0; i < rules.size(); ++i) {
277 StyleRuleBase* rule = rules[i].get(); 277 StyleRuleBase* rule = rules[i].get();
278 278
279 if (rule->isStyleRule()) { 279 if (rule->isStyleRule()) {
280 StyleRule* styleRule = toStyleRule(rule); 280 StyleRule* styleRule = toStyleRule(rule);
281 281
282 const CSSSelectorList& selectorList = styleRule->selectorList(); 282 const CSSSelectorList& selectorList = styleRule->selectorList();
283 for (const CSSSelector* selector = selectorList.first(); selector; 283 for (const CSSSelector* selector = selectorList.first(); selector;
284 selector = selectorList.next(*selector)) { 284 selector = selectorList.next(*selector)) {
285 size_t selectorIndex = selectorList.selectorIndex(*selector); 285 size_t selectorIndex = selectorList.selectorIndex(*selector);
286 if (selector->hasDeepCombinatorOrShadowPseudo()) { 286 if (selector->hasDeepCombinatorOrShadowPseudo()) {
287 m_deepCombinatorOrShadowPseudoRules.append( 287 m_deepCombinatorOrShadowPseudoRules.push_back(
288 MinimalRuleData(styleRule, selectorIndex, addRuleFlags)); 288 MinimalRuleData(styleRule, selectorIndex, addRuleFlags));
289 } else if (selector->hasContentPseudo()) { 289 } else if (selector->hasContentPseudo()) {
290 m_contentPseudoElementRules.append( 290 m_contentPseudoElementRules.push_back(
291 MinimalRuleData(styleRule, selectorIndex, addRuleFlags)); 291 MinimalRuleData(styleRule, selectorIndex, addRuleFlags));
292 } else if (selector->hasSlottedPseudo()) { 292 } else if (selector->hasSlottedPseudo()) {
293 m_slottedPseudoElementRules.append( 293 m_slottedPseudoElementRules.push_back(
294 MinimalRuleData(styleRule, selectorIndex, addRuleFlags)); 294 MinimalRuleData(styleRule, selectorIndex, addRuleFlags));
295 } else { 295 } else {
296 addRule(styleRule, selectorIndex, addRuleFlags); 296 addRule(styleRule, selectorIndex, addRuleFlags);
297 } 297 }
298 } 298 }
299 } else if (rule->isPageRule()) { 299 } else if (rule->isPageRule()) {
300 addPageRule(toStyleRulePage(rule)); 300 addPageRule(toStyleRulePage(rule));
301 } else if (rule->isMediaRule()) { 301 } else if (rule->isMediaRule()) {
302 StyleRuleMedia* mediaRule = toStyleRuleMedia(rule); 302 StyleRuleMedia* mediaRule = toStyleRuleMedia(rule);
303 if (!mediaRule->mediaQueries() || 303 if (!mediaRule->mediaQueries() ||
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 } 425 }
426 426
427 #ifndef NDEBUG 427 #ifndef NDEBUG
428 void RuleSet::show() const { 428 void RuleSet::show() const {
429 for (const auto& rule : m_allRules) 429 for (const auto& rule : m_allRules)
430 rule.selector().show(); 430 rule.selector().show();
431 } 431 }
432 #endif 432 #endif
433 433
434 } // namespace blink 434 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/RuleFeature.cpp ('k') | third_party/WebKit/Source/core/css/SelectorFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698