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

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

Issue 1850413002: Improve DEFINE_STATIC_LOCAL()'s handling of Blink GCed objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add HeapTest unit test + rebase upto r384858. Created 4 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, 2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights 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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 } // namespace 133 } // namespace
134 134
135 namespace blink { 135 namespace blink {
136 136
137 using namespace HTMLNames; 137 using namespace HTMLNames;
138 138
139 ComputedStyle* StyleResolver::s_styleNotYetAvailable; 139 ComputedStyle* StyleResolver::s_styleNotYetAvailable;
140 140
141 static StylePropertySet* leftToRightDeclaration() 141 static StylePropertySet* leftToRightDeclaration()
142 { 142 {
143 DEFINE_STATIC_REF_WILL_BE_PERSISTENT(MutableStylePropertySet, leftToRightDec l, (MutableStylePropertySet::create(HTMLQuirksMode))); 143 DEFINE_STATIC_LOCAL(MutableStylePropertySet, leftToRightDecl, (MutableStyleP ropertySet::create(HTMLQuirksMode)));
144 if (leftToRightDecl->isEmpty()) 144 if (leftToRightDecl.isEmpty())
145 leftToRightDecl->setProperty(CSSPropertyDirection, CSSValueLtr); 145 leftToRightDecl.setProperty(CSSPropertyDirection, CSSValueLtr);
146 return leftToRightDecl; 146 return &leftToRightDecl;
147 } 147 }
148 148
149 static StylePropertySet* rightToLeftDeclaration() 149 static StylePropertySet* rightToLeftDeclaration()
150 { 150 {
151 DEFINE_STATIC_REF_WILL_BE_PERSISTENT(MutableStylePropertySet, rightToLeftDec l, (MutableStylePropertySet::create(HTMLQuirksMode))); 151 DEFINE_STATIC_LOCAL(MutableStylePropertySet, rightToLeftDecl, (MutableStyleP ropertySet::create(HTMLQuirksMode)));
152 if (rightToLeftDecl->isEmpty()) 152 if (rightToLeftDecl.isEmpty())
153 rightToLeftDecl->setProperty(CSSPropertyDirection, CSSValueRtl); 153 rightToLeftDecl.setProperty(CSSPropertyDirection, CSSValueRtl);
154 return rightToLeftDecl; 154 return &rightToLeftDecl;
155 } 155 }
156 156
157 static void collectScopedResolversForHostedShadowTrees(const Element& element, H eapVector<Member<ScopedStyleResolver>, 8>& resolvers) 157 static void collectScopedResolversForHostedShadowTrees(const Element& element, H eapVector<Member<ScopedStyleResolver>, 8>& resolvers)
158 { 158 {
159 ElementShadow* shadow = element.shadow(); 159 ElementShadow* shadow = element.shadow();
160 if (!shadow) 160 if (!shadow)
161 return; 161 return;
162 162
163 // Adding scoped resolver for active shadow roots for shadow host styling. 163 // Adding scoped resolver for active shadow roots for shadow host styling.
164 for (ShadowRoot* shadowRoot = &shadow->youngestShadowRoot(); shadowRoot; sha dowRoot = shadowRoot->olderShadowRoot()) { 164 for (ShadowRoot* shadowRoot = &shadow->youngestShadowRoot(); shadowRoot; sha dowRoot = shadowRoot->olderShadowRoot()) {
(...skipping 1547 matching lines...) Expand 10 before | Expand all | Expand 10 after
1712 visitor->trace(m_uncommonAttributeRuleSet); 1712 visitor->trace(m_uncommonAttributeRuleSet);
1713 visitor->trace(m_watchedSelectorsRules); 1713 visitor->trace(m_watchedSelectorsRules);
1714 visitor->trace(m_treeBoundaryCrossingScopes); 1714 visitor->trace(m_treeBoundaryCrossingScopes);
1715 visitor->trace(m_styleSharingLists); 1715 visitor->trace(m_styleSharingLists);
1716 visitor->trace(m_pendingStyleSheets); 1716 visitor->trace(m_pendingStyleSheets);
1717 visitor->trace(m_document); 1717 visitor->trace(m_document);
1718 #endif 1718 #endif
1719 } 1719 }
1720 1720
1721 } // namespace blink 1721 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698