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

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

Issue 2755493004: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in core/css/ (Closed)
Patch Set: All windows error are Resolved now. Created 3 years, 8 months 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 CSSSelector::PseudoType key, 243 CSSSelector::PseudoType key,
244 InvalidationType type) { 244 InvalidationType type) {
245 RefPtr<InvalidationSet>& invalidationSet = 245 RefPtr<InvalidationSet>& invalidationSet =
246 map.insert(key, nullptr).storedValue->value; 246 map.insert(key, nullptr).storedValue->value;
247 return storedInvalidationSet(invalidationSet, type); 247 return storedInvalidationSet(invalidationSet, type);
248 } 248 }
249 249
250 void extractInvalidationSets(InvalidationSet* invalidationSet, 250 void extractInvalidationSets(InvalidationSet* invalidationSet,
251 DescendantInvalidationSet*& descendants, 251 DescendantInvalidationSet*& descendants,
252 SiblingInvalidationSet*& siblings) { 252 SiblingInvalidationSet*& siblings) {
253 RELEASE_ASSERT(invalidationSet->isAlive()); 253 CHECK(invalidationSet->isAlive());
254 if (invalidationSet->type() == InvalidateDescendants) { 254 if (invalidationSet->type() == InvalidateDescendants) {
255 descendants = toDescendantInvalidationSet(invalidationSet); 255 descendants = toDescendantInvalidationSet(invalidationSet);
256 siblings = nullptr; 256 siblings = nullptr;
257 return; 257 return;
258 } 258 }
259 259
260 siblings = toSiblingInvalidationSet(invalidationSet); 260 siblings = toSiblingInvalidationSet(invalidationSet);
261 descendants = siblings->descendants(); 261 descendants = siblings->descendants();
262 } 262 }
263 263
264 } // anonymous namespace 264 } // anonymous namespace
265 265
266 RuleFeature::RuleFeature(StyleRule* rule, 266 RuleFeature::RuleFeature(StyleRule* rule,
267 unsigned selectorIndex, 267 unsigned selectorIndex,
268 bool hasDocumentSecurityOrigin) 268 bool hasDocumentSecurityOrigin)
269 : rule(rule), 269 : rule(rule),
270 selectorIndex(selectorIndex), 270 selectorIndex(selectorIndex),
271 hasDocumentSecurityOrigin(hasDocumentSecurityOrigin) {} 271 hasDocumentSecurityOrigin(hasDocumentSecurityOrigin) {}
272 272
273 DEFINE_TRACE(RuleFeature) { 273 DEFINE_TRACE(RuleFeature) {
274 visitor->trace(rule); 274 visitor->trace(rule);
275 } 275 }
276 276
277 RuleFeatureSet::RuleFeatureSet() : m_isAlive(true) {} 277 RuleFeatureSet::RuleFeatureSet() : m_isAlive(true) {}
278 278
279 RuleFeatureSet::~RuleFeatureSet() { 279 RuleFeatureSet::~RuleFeatureSet() {
280 RELEASE_ASSERT(m_isAlive); 280 CHECK(m_isAlive);
281 281
282 m_metadata.clear(); 282 m_metadata.clear();
283 m_classInvalidationSets.clear(); 283 m_classInvalidationSets.clear();
284 m_attributeInvalidationSets.clear(); 284 m_attributeInvalidationSets.clear();
285 m_idInvalidationSets.clear(); 285 m_idInvalidationSets.clear();
286 m_pseudoInvalidationSets.clear(); 286 m_pseudoInvalidationSets.clear();
287 m_universalSiblingInvalidationSet.clear(); 287 m_universalSiblingInvalidationSet.clear();
288 m_nthInvalidationSet.clear(); 288 m_nthInvalidationSet.clear();
289 289
290 m_isAlive = false; 290 m_isAlive = false;
291 } 291 }
292 292
293 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureClassInvalidationSet( 293 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureClassInvalidationSet(
294 const AtomicString& className, 294 const AtomicString& className,
295 InvalidationType type) { 295 InvalidationType type) {
296 RELEASE_ASSERT(!className.isEmpty()); 296 CHECK(!className.isEmpty());
297 return ensureInvalidationSet(m_classInvalidationSets, className, type); 297 return ensureInvalidationSet(m_classInvalidationSets, className, type);
298 } 298 }
299 299
300 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureAttributeInvalidationSet( 300 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureAttributeInvalidationSet(
301 const AtomicString& attributeName, 301 const AtomicString& attributeName,
302 InvalidationType type) { 302 InvalidationType type) {
303 RELEASE_ASSERT(!attributeName.isEmpty()); 303 CHECK(!attributeName.isEmpty());
304 return ensureInvalidationSet(m_attributeInvalidationSets, attributeName, 304 return ensureInvalidationSet(m_attributeInvalidationSets, attributeName,
305 type); 305 type);
306 } 306 }
307 307
308 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureIdInvalidationSet( 308 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureIdInvalidationSet(
309 const AtomicString& id, 309 const AtomicString& id,
310 InvalidationType type) { 310 InvalidationType type) {
311 RELEASE_ASSERT(!id.isEmpty()); 311 CHECK(!id.isEmpty());
312 return ensureInvalidationSet(m_idInvalidationSets, id, type); 312 return ensureInvalidationSet(m_idInvalidationSets, id, type);
313 } 313 }
314 314
315 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensurePseudoInvalidationSet( 315 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensurePseudoInvalidationSet(
316 CSSSelector::PseudoType pseudoType, 316 CSSSelector::PseudoType pseudoType,
317 InvalidationType type) { 317 InvalidationType type) {
318 RELEASE_ASSERT(pseudoType != CSSSelector::PseudoUnknown); 318 CHECK_NE(pseudoType, CSSSelector::PseudoUnknown);
319 return ensureInvalidationSet(m_pseudoInvalidationSets, pseudoType, type); 319 return ensureInvalidationSet(m_pseudoInvalidationSets, pseudoType, type);
320 } 320 }
321 321
322 void RuleFeatureSet::updateFeaturesFromCombinator( 322 void RuleFeatureSet::updateFeaturesFromCombinator(
323 const CSSSelector& lastInCompound, 323 const CSSSelector& lastInCompound,
324 const CSSSelector* lastCompoundInAdjacentChain, 324 const CSSSelector* lastCompoundInAdjacentChain,
325 InvalidationSetFeatures& lastCompoundInAdjacentChainFeatures, 325 InvalidationSetFeatures& lastCompoundInAdjacentChainFeatures,
326 InvalidationSetFeatures*& siblingFeatures, 326 InvalidationSetFeatures*& siblingFeatures,
327 InvalidationSetFeatures& descendantFeatures) { 327 InvalidationSetFeatures& descendantFeatures) {
328 if (lastInCompound.isAdjacentSelector()) { 328 if (lastInCompound.isAdjacentSelector()) {
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
799 DCHECK(lastInCompound); 799 DCHECK(lastInCompound);
800 updateFeaturesFromCombinator(*lastInCompound, compound, 800 updateFeaturesFromCombinator(*lastInCompound, compound,
801 lastCompoundInSiblingChainFeatures, 801 lastCompoundInSiblingChainFeatures,
802 siblingFeatures, descendantFeatures); 802 siblingFeatures, descendantFeatures);
803 compound = lastInCompound->tagHistory(); 803 compound = lastInCompound->tagHistory();
804 } 804 }
805 } 805 }
806 806
807 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromRuleData( 807 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromRuleData(
808 const RuleData& ruleData) { 808 const RuleData& ruleData) {
809 RELEASE_ASSERT(m_isAlive); 809 CHECK(m_isAlive);
810 FeatureMetadata metadata; 810 FeatureMetadata metadata;
811 if (collectFeaturesFromSelector(ruleData.selector(), metadata) == 811 if (collectFeaturesFromSelector(ruleData.selector(), metadata) ==
812 SelectorNeverMatches) 812 SelectorNeverMatches)
813 return SelectorNeverMatches; 813 return SelectorNeverMatches;
814 814
815 m_metadata.add(metadata); 815 m_metadata.add(metadata);
816 816
817 if (metadata.foundSiblingSelector) { 817 if (metadata.foundSiblingSelector) {
818 m_siblingRules.push_back(RuleFeature(ruleData.rule(), 818 m_siblingRules.push_back(RuleFeature(ruleData.rule(),
819 ruleData.selectorIndex(), 819 ruleData.selectorIndex(),
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 void RuleFeatureSet::FeatureMetadata::clear() { 916 void RuleFeatureSet::FeatureMetadata::clear() {
917 usesFirstLineRules = false; 917 usesFirstLineRules = false;
918 usesWindowInactiveSelector = false; 918 usesWindowInactiveSelector = false;
919 foundSiblingSelector = false; 919 foundSiblingSelector = false;
920 foundInsertionPointCrossing = false; 920 foundInsertionPointCrossing = false;
921 needsFullRecalcForRuleSetInvalidation = false; 921 needsFullRecalcForRuleSetInvalidation = false;
922 maxDirectAdjacentSelectors = 0; 922 maxDirectAdjacentSelectors = 0;
923 } 923 }
924 924
925 void RuleFeatureSet::add(const RuleFeatureSet& other) { 925 void RuleFeatureSet::add(const RuleFeatureSet& other) {
926 RELEASE_ASSERT(m_isAlive); 926 CHECK(m_isAlive);
927 RELEASE_ASSERT(other.m_isAlive); 927 CHECK(other.m_isAlive);
928 RELEASE_ASSERT(&other != this); 928 CHECK_NE(&other, this);
929 for (const auto& entry : other.m_classInvalidationSets) 929 for (const auto& entry : other.m_classInvalidationSets)
930 ensureInvalidationSet(m_classInvalidationSets, entry.key, 930 ensureInvalidationSet(m_classInvalidationSets, entry.key,
931 entry.value->type()) 931 entry.value->type())
932 .combine(*entry.value); 932 .combine(*entry.value);
933 for (const auto& entry : other.m_attributeInvalidationSets) 933 for (const auto& entry : other.m_attributeInvalidationSets)
934 ensureInvalidationSet(m_attributeInvalidationSets, entry.key, 934 ensureInvalidationSet(m_attributeInvalidationSets, entry.key,
935 entry.value->type()) 935 entry.value->type())
936 .combine(*entry.value); 936 .combine(*entry.value);
937 for (const auto& entry : other.m_idInvalidationSets) 937 for (const auto& entry : other.m_idInvalidationSets)
938 ensureInvalidationSet(m_idInvalidationSets, entry.key, entry.value->type()) 938 ensureInvalidationSet(m_idInvalidationSets, entry.key, entry.value->type())
(...skipping 13 matching lines...) Expand all
952 952
953 m_siblingRules.appendVector(other.m_siblingRules); 953 m_siblingRules.appendVector(other.m_siblingRules);
954 m_uncommonAttributeRules.appendVector(other.m_uncommonAttributeRules); 954 m_uncommonAttributeRules.appendVector(other.m_uncommonAttributeRules);
955 m_viewportDependentMediaQueryResults.appendVector( 955 m_viewportDependentMediaQueryResults.appendVector(
956 other.m_viewportDependentMediaQueryResults); 956 other.m_viewportDependentMediaQueryResults);
957 m_deviceDependentMediaQueryResults.appendVector( 957 m_deviceDependentMediaQueryResults.appendVector(
958 other.m_deviceDependentMediaQueryResults); 958 other.m_deviceDependentMediaQueryResults);
959 } 959 }
960 960
961 void RuleFeatureSet::clear() { 961 void RuleFeatureSet::clear() {
962 RELEASE_ASSERT(m_isAlive); 962 CHECK(m_isAlive);
963 m_siblingRules.clear(); 963 m_siblingRules.clear();
964 m_uncommonAttributeRules.clear(); 964 m_uncommonAttributeRules.clear();
965 m_metadata.clear(); 965 m_metadata.clear();
966 m_classInvalidationSets.clear(); 966 m_classInvalidationSets.clear();
967 m_attributeInvalidationSets.clear(); 967 m_attributeInvalidationSets.clear();
968 m_idInvalidationSets.clear(); 968 m_idInvalidationSets.clear();
969 m_pseudoInvalidationSets.clear(); 969 m_pseudoInvalidationSets.clear();
970 m_universalSiblingInvalidationSet.clear(); 970 m_universalSiblingInvalidationSet.clear();
971 m_nthInvalidationSet.clear(); 971 m_nthInvalidationSet.clear();
972 m_viewportDependentMediaQueryResults.clear(); 972 m_viewportDependentMediaQueryResults.clear();
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1231 bool RuleFeatureSet::InvalidationSetFeatures::hasFeatures() const { 1231 bool RuleFeatureSet::InvalidationSetFeatures::hasFeatures() const {
1232 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() || 1232 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() ||
1233 !tagNames.isEmpty() || customPseudoElement; 1233 !tagNames.isEmpty() || customPseudoElement;
1234 } 1234 }
1235 1235
1236 bool RuleFeatureSet::InvalidationSetFeatures::hasIdClassOrAttribute() const { 1236 bool RuleFeatureSet::InvalidationSetFeatures::hasIdClassOrAttribute() const {
1237 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty(); 1237 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty();
1238 } 1238 }
1239 1239
1240 } // namespace blink 1240 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/RemoteFontFaceSource.cpp ('k') | third_party/WebKit/Source/core/css/RuleSet.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698