OLD | NEW |
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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 | 43 |
44 class StylePropertySet : public RefCounted<StylePropertySet> { | 44 class StylePropertySet : public RefCounted<StylePropertySet> { |
45 friend class PropertyReference; | 45 friend class PropertyReference; |
46 public: | 46 public: |
47 ~StylePropertySet(); | 47 ~StylePropertySet(); |
48 | 48 |
49 // Override RefCounted's deref() to ensure operator delete is called on | 49 // Override RefCounted's deref() to ensure operator delete is called on |
50 // the appropriate subclass type. | 50 // the appropriate subclass type. |
51 void deref(); | 51 void deref(); |
52 | 52 |
53 static PassRefPtr<StylePropertySet> create(CSSParserMode = CSSQuirksMode); | |
54 static PassRefPtr<StylePropertySet> create(const CSSProperty* properties, un
signed count); | |
55 static PassRefPtr<StylePropertySet> createImmutable(const CSSProperty* prope
rties, unsigned count, CSSParserMode); | 53 static PassRefPtr<StylePropertySet> createImmutable(const CSSProperty* prope
rties, unsigned count, CSSParserMode); |
56 | 54 |
57 class PropertyReference { | 55 class PropertyReference { |
58 public: | 56 public: |
59 PropertyReference(const StylePropertySet& propertySet, unsigned index) | 57 PropertyReference(const StylePropertySet& propertySet, unsigned index) |
60 : m_propertySet(propertySet) | 58 : m_propertySet(propertySet) |
61 , m_index(index) | 59 , m_index(index) |
62 { | 60 { |
63 } | 61 } |
64 | 62 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 } | 216 } |
219 | 217 |
220 inline const StylePropertyMetadata* StylePropertySet::immutableMetadataArray() c
onst | 218 inline const StylePropertyMetadata* StylePropertySet::immutableMetadataArray() c
onst |
221 { | 219 { |
222 ASSERT(!m_isMutable); | 220 ASSERT(!m_isMutable); |
223 return reinterpret_cast<const StylePropertyMetadata*>(&reinterpret_cast<cons
t char*>((&static_cast<const ImmutableStylePropertySet*>(this)->m_storage))[m_ar
raySize * sizeof(CSSValue*)]); | 221 return reinterpret_cast<const StylePropertyMetadata*>(&reinterpret_cast<cons
t char*>((&static_cast<const ImmutableStylePropertySet*>(this)->m_storage))[m_ar
raySize * sizeof(CSSValue*)]); |
224 } | 222 } |
225 | 223 |
226 class MutableStylePropertySet : public StylePropertySet { | 224 class MutableStylePropertySet : public StylePropertySet { |
227 public: | 225 public: |
| 226 static PassRefPtr<MutableStylePropertySet> create(CSSParserMode = CSSQuirksM
ode); |
| 227 static PassRefPtr<MutableStylePropertySet> create(const CSSProperty* propert
ies, unsigned count); |
| 228 |
| 229 MutableStylePropertySet(const StylePropertySet&); |
| 230 |
| 231 Vector<CSSProperty, 4> m_propertyVector; |
| 232 |
| 233 private: |
228 MutableStylePropertySet(CSSParserMode cssParserMode) | 234 MutableStylePropertySet(CSSParserMode cssParserMode) |
229 : StylePropertySet(cssParserMode) | 235 : StylePropertySet(cssParserMode) |
230 { } | 236 { } |
231 MutableStylePropertySet(const CSSProperty* properties, unsigned count); | 237 MutableStylePropertySet(const CSSProperty* properties, unsigned count); |
232 MutableStylePropertySet(const StylePropertySet&); | |
233 | |
234 Vector<CSSProperty, 4> m_propertyVector; | |
235 }; | 238 }; |
236 | 239 |
237 inline Vector<CSSProperty, 4>& StylePropertySet::mutablePropertyVector() | 240 inline Vector<CSSProperty, 4>& StylePropertySet::mutablePropertyVector() |
238 { | 241 { |
239 ASSERT(m_isMutable); | 242 ASSERT(m_isMutable); |
240 return static_cast<MutableStylePropertySet*>(this)->m_propertyVector; | 243 return static_cast<MutableStylePropertySet*>(this)->m_propertyVector; |
241 } | 244 } |
242 | 245 |
243 inline const Vector<CSSProperty, 4>& StylePropertySet::mutablePropertyVector() c
onst | 246 inline const Vector<CSSProperty, 4>& StylePropertySet::mutablePropertyVector() c
onst |
244 { | 247 { |
(...skipping 20 matching lines...) Expand all Loading... |
265 | 268 |
266 if (m_isMutable) | 269 if (m_isMutable) |
267 delete static_cast<MutableStylePropertySet*>(this); | 270 delete static_cast<MutableStylePropertySet*>(this); |
268 else | 271 else |
269 delete static_cast<ImmutableStylePropertySet*>(this); | 272 delete static_cast<ImmutableStylePropertySet*>(this); |
270 } | 273 } |
271 | 274 |
272 } // namespace WebCore | 275 } // namespace WebCore |
273 | 276 |
274 #endif // StylePropertySet_h | 277 #endif // StylePropertySet_h |
OLD | NEW |