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

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

Issue 1382353002: Oilpan: promptly dispose style resolvers upon clearing. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Only expose dispose()s to Oilpan Created 5 years, 2 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 r ights reserved. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r ights reserved.
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 , m_position(position) 112 , m_position(position)
113 , m_specificity(selector().specificity()) 113 , m_specificity(selector().specificity())
114 , m_containsUncommonAttributeSelector(blink::containsUncommonAttributeSelect or(selector())) 114 , m_containsUncommonAttributeSelector(blink::containsUncommonAttributeSelect or(selector()))
115 , m_linkMatchType(selector().computeLinkMatchType()) 115 , m_linkMatchType(selector().computeLinkMatchType())
116 , m_hasDocumentSecurityOrigin(addRuleFlags & RuleHasDocumentSecurityOrigin) 116 , m_hasDocumentSecurityOrigin(addRuleFlags & RuleHasDocumentSecurityOrigin)
117 , m_propertyWhitelistType(determinePropertyWhitelistType(addRuleFlags, selec tor())) 117 , m_propertyWhitelistType(determinePropertyWhitelistType(addRuleFlags, selec tor()))
118 { 118 {
119 SelectorFilter::collectIdentifierHashes(selector(), m_descendantSelectorIden tifierHashes, maximumIdentifierCount); 119 SelectorFilter::collectIdentifierHashes(selector(), m_descendantSelectorIden tifierHashes, maximumIdentifierCount);
120 } 120 }
121 121
122 RuleSet::~RuleSet()
123 {
124 }
125
126 #if ENABLE(OILPAN)
127 void RuleSet::dispose()
128 {
129 m_idRules.clear();
130 m_classRules.clear();
131 m_tagRules.clear();
132 m_shadowPseudoElementRules.clear();
133 m_linkPseudoClassRules.clear();
134 m_cuePseudoRules.clear();
135 m_focusPseudoClassRules.clear();
136 m_universalRules.clear();
137 m_shadowHostRules.clear();
138 m_features.clear();
139 m_pageRules.clear();
140 m_viewportRules.clear();
141 m_fontFaceRules.clear();
142 m_keyframesRules.clear();
143 m_treeBoundaryCrossingRules.clear();
144 m_shadowDistributedRules.clear();
145 m_pendingRules.clear();
146 }
147 #endif
148
122 void RuleSet::addToRuleSet(const AtomicString& key, PendingRuleMap& map, const R uleData& ruleData) 149 void RuleSet::addToRuleSet(const AtomicString& key, PendingRuleMap& map, const R uleData& ruleData)
123 { 150 {
124 OwnPtrWillBeMember<WillBeHeapLinkedStack<RuleData>>& rules = map.add(key, nu llptr).storedValue->value; 151 OwnPtrWillBeMember<WillBeHeapLinkedStack<RuleData>>& rules = map.add(key, nu llptr).storedValue->value;
125 if (!rules) 152 if (!rules)
126 rules = adoptPtrWillBeNoop(new WillBeHeapLinkedStack<RuleData>); 153 rules = adoptPtrWillBeNoop(new WillBeHeapLinkedStack<RuleData>);
127 rules->push(ruleData); 154 rules->push(ruleData);
128 } 155 }
129 156
130 static void extractValuesforSelector(const CSSSelector* selector, AtomicString& id, AtomicString& className, AtomicString& customPseudoElementName, AtomicString & tagName) 157 static void extractValuesforSelector(const CSSSelector* selector, AtomicString& id, AtomicString& className, AtomicString& customPseudoElementName, AtomicString & tagName)
131 { 158 {
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 421
395 #ifndef NDEBUG 422 #ifndef NDEBUG
396 void RuleSet::show() 423 void RuleSet::show()
397 { 424 {
398 for (const auto& rule: m_allRules) 425 for (const auto& rule: m_allRules)
399 rule.selector().show(); 426 rule.selector().show();
400 } 427 }
401 #endif 428 #endif
402 429
403 } // namespace blink 430 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/RuleSet.h ('k') | third_party/WebKit/Source/core/css/resolver/ScopedStyleResolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698