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

Side by Side Diff: Source/core/css/StylePropertySet.h

Issue 1276243002: Oilpan: mark StylePropertySet::PropertyReference as stack allocated. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 // destructor. This can be removed once the MutableStylePropertySet's OwnPtr is moved 49 // destructor. This can be removed once the MutableStylePropertySet's OwnPtr is moved
50 // to the heap. 50 // to the heap.
51 void finalizeGarbageCollectedObject(); 51 void finalizeGarbageCollectedObject();
52 #else 52 #else
53 // Override RefCounted's deref() to ensure operator delete is called on 53 // Override RefCounted's deref() to ensure operator delete is called on
54 // the appropriate subclass type. 54 // the appropriate subclass type.
55 void deref(); 55 void deref();
56 #endif 56 #endif
57 57
58 class PropertyReference { 58 class PropertyReference {
59 STACK_ALLOCATED();
59 public: 60 public:
60 PropertyReference(const StylePropertySet& propertySet, unsigned index) 61 PropertyReference(const StylePropertySet& propertySet, unsigned index)
61 : m_propertySet(propertySet) 62 : m_propertySet(&propertySet)
62 , m_index(index) 63 , m_index(index)
63 { 64 {
64 } 65 }
65 66
66 CSSPropertyID id() const { return static_cast<CSSPropertyID>(propertyMet adata().m_propertyID); } 67 CSSPropertyID id() const { return static_cast<CSSPropertyID>(propertyMet adata().m_propertyID); }
67 CSSPropertyID shorthandID() const { return propertyMetadata().shorthandI D(); } 68 CSSPropertyID shorthandID() const { return propertyMetadata().shorthandI D(); }
68 69
69 bool isImportant() const { return propertyMetadata().m_important; } 70 bool isImportant() const { return propertyMetadata().m_important; }
70 bool isInherited() const { return propertyMetadata().m_inherited; } 71 bool isInherited() const { return propertyMetadata().m_inherited; }
71 bool isImplicit() const { return propertyMetadata().m_implicit; } 72 bool isImplicit() const { return propertyMetadata().m_implicit; }
72 73
73 const CSSValue* value() const { return propertyValue(); } 74 const CSSValue* value() const { return propertyValue(); }
74 // FIXME: We should try to remove this mutable overload. 75 // FIXME: We should try to remove this mutable overload.
75 CSSValue* value() { return const_cast<CSSValue*>(propertyValue()); } 76 CSSValue* value() { return const_cast<CSSValue*>(propertyValue()); }
76 77
77 // FIXME: Remove this. 78 // FIXME: Remove this.
78 CSSProperty toCSSProperty() const { return CSSProperty(propertyMetadata( ), const_cast<CSSValue*>(propertyValue())); } 79 CSSProperty toCSSProperty() const { return CSSProperty(propertyMetadata( ), const_cast<CSSValue*>(propertyValue())); }
79 80
80 const StylePropertyMetadata& propertyMetadata() const; 81 const StylePropertyMetadata& propertyMetadata() const;
81 82
82 private: 83 private:
83 const CSSValue* propertyValue() const; 84 const CSSValue* propertyValue() const;
84 85
85 const StylePropertySet& m_propertySet; 86 RawPtrWillBeMember<const StylePropertySet> m_propertySet;
86 unsigned m_index; 87 unsigned m_index;
87 }; 88 };
88 89
89 unsigned propertyCount() const; 90 unsigned propertyCount() const;
90 bool isEmpty() const; 91 bool isEmpty() const;
91 PropertyReference propertyAt(unsigned index) const { return PropertyReferenc e(*this, index); } 92 PropertyReference propertyAt(unsigned index) const { return PropertyReferenc e(*this, index); }
92 int findPropertyIndex(CSSPropertyID) const; 93 int findPropertyIndex(CSSPropertyID) const;
93 bool hasProperty(CSSPropertyID property) const { return findPropertyIndex(pr operty) != -1; } 94 bool hasProperty(CSSPropertyID property) const { return findPropertyIndex(pr operty) != -1; }
94 95
95 PassRefPtrWillBeRawPtr<CSSValue> getPropertyCSSValue(CSSPropertyID) const; 96 PassRefPtrWillBeRawPtr<CSSValue> getPropertyCSSValue(CSSPropertyID) const;
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 return toMutableStylePropertySet(set.get()); 244 return toMutableStylePropertySet(set.get());
244 } 245 }
245 246
246 inline MutableStylePropertySet* toMutableStylePropertySet(const Member<StyleProp ertySet>& set) 247 inline MutableStylePropertySet* toMutableStylePropertySet(const Member<StyleProp ertySet>& set)
247 { 248 {
248 return toMutableStylePropertySet(set.get()); 249 return toMutableStylePropertySet(set.get());
249 } 250 }
250 251
251 inline const StylePropertyMetadata& StylePropertySet::PropertyReference::propert yMetadata() const 252 inline const StylePropertyMetadata& StylePropertySet::PropertyReference::propert yMetadata() const
252 { 253 {
253 if (m_propertySet.isMutable()) 254 if (m_propertySet->isMutable())
254 return toMutableStylePropertySet(m_propertySet).m_propertyVector.at(m_in dex).metadata(); 255 return toMutableStylePropertySet(*m_propertySet).m_propertyVector.at(m_i ndex).metadata();
255 return toImmutableStylePropertySet(m_propertySet).metadataArray()[m_index]; 256 return toImmutableStylePropertySet(*m_propertySet).metadataArray()[m_index];
256 } 257 }
257 258
258 inline const CSSValue* StylePropertySet::PropertyReference::propertyValue() cons t 259 inline const CSSValue* StylePropertySet::PropertyReference::propertyValue() cons t
259 { 260 {
260 if (m_propertySet.isMutable()) 261 if (m_propertySet->isMutable())
261 return toMutableStylePropertySet(m_propertySet).m_propertyVector.at(m_in dex).value(); 262 return toMutableStylePropertySet(*m_propertySet).m_propertyVector.at(m_i ndex).value();
262 return toImmutableStylePropertySet(m_propertySet).valueArray()[m_index]; 263 return toImmutableStylePropertySet(*m_propertySet).valueArray()[m_index];
263 } 264 }
264 265
265 inline unsigned StylePropertySet::propertyCount() const 266 inline unsigned StylePropertySet::propertyCount() const
266 { 267 {
267 if (m_isMutable) 268 if (m_isMutable)
268 return toMutableStylePropertySet(this)->m_propertyVector.size(); 269 return toMutableStylePropertySet(this)->m_propertyVector.size();
269 return m_arraySize; 270 return m_arraySize;
270 } 271 }
271 272
272 inline bool StylePropertySet::isEmpty() const 273 inline bool StylePropertySet::isEmpty() const
(...skipping 17 matching lines...) Expand all
290 inline int StylePropertySet::findPropertyIndex(CSSPropertyID propertyID) const 291 inline int StylePropertySet::findPropertyIndex(CSSPropertyID propertyID) const
291 { 292 {
292 if (m_isMutable) 293 if (m_isMutable)
293 return toMutableStylePropertySet(this)->findPropertyIndex(propertyID); 294 return toMutableStylePropertySet(this)->findPropertyIndex(propertyID);
294 return toImmutableStylePropertySet(this)->findPropertyIndex(propertyID); 295 return toImmutableStylePropertySet(this)->findPropertyIndex(propertyID);
295 } 296 }
296 297
297 } // namespace blink 298 } // namespace blink
298 299
299 #endif // StylePropertySet_h 300 #endif // StylePropertySet_h
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698