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

Side by Side Diff: Source/core/animation/PropertyHandle.h

Issue 1302463002: Make classes and structures in Source/core/animation fast-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 | « Source/core/animation/PrimitiveInterpolation.h ('k') | Source/core/animation/SampledEffect.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PropertyHandle_h 5 #ifndef PropertyHandle_h
6 #define PropertyHandle_h 6 #define PropertyHandle_h
7 7
8 #include "core/CSSPropertyNames.h" 8 #include "core/CSSPropertyNames.h"
9 #include "core/CoreExport.h" 9 #include "core/CoreExport.h"
10 #include "core/dom/QualifiedName.h" 10 #include "core/dom/QualifiedName.h"
11 #include "wtf/Allocator.h"
11 12
12 namespace blink { 13 namespace blink {
13 14
14 class CORE_EXPORT PropertyHandle { 15 class CORE_EXPORT PropertyHandle {
16 ALLOW_ONLY_INLINE_ALLOCATION();
15 public: 17 public:
16 explicit PropertyHandle(CSSPropertyID property) 18 explicit PropertyHandle(CSSPropertyID property)
17 : handleType(HandleCSSProperty) 19 : handleType(HandleCSSProperty)
18 , property(property) 20 , property(property)
19 { 21 {
20 ASSERT(property != CSSPropertyInvalid); 22 ASSERT(property != CSSPropertyInvalid);
21 } 23 }
22 24
23 explicit PropertyHandle(const QualifiedName& attributeName) 25 explicit PropertyHandle(const QualifiedName& attributeName)
24 : handleType(HandleSVGAttribute) 26 : handleType(HandleSVGAttribute)
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 67
66 friend struct ::WTF::HashTraits<blink::PropertyHandle>; 68 friend struct ::WTF::HashTraits<blink::PropertyHandle>;
67 }; 69 };
68 70
69 } // namespace blink 71 } // namespace blink
70 72
71 namespace WTF { 73 namespace WTF {
72 74
73 template<> struct DefaultHash<blink::PropertyHandle> { 75 template<> struct DefaultHash<blink::PropertyHandle> {
74 struct Hash { 76 struct Hash {
77 STATIC_ONLY(Hash);
75 static unsigned hash(const blink::PropertyHandle& handle) { return handl e.hash(); } 78 static unsigned hash(const blink::PropertyHandle& handle) { return handl e.hash(); }
76 79
77 static bool equal(const blink::PropertyHandle& a, const blink::PropertyH andle& b) { return a == b; } 80 static bool equal(const blink::PropertyHandle& a, const blink::PropertyH andle& b) { return a == b; }
78 81
79 static const bool safeToCompareToEmptyOrDeleted = true; 82 static const bool safeToCompareToEmptyOrDeleted = true;
80 }; 83 };
81 }; 84 };
82 85
83 template<> struct HashTraits<blink::PropertyHandle> : SimpleClassHashTraits<blin k::PropertyHandle> { 86 template<> struct HashTraits<blink::PropertyHandle> : SimpleClassHashTraits<blin k::PropertyHandle> {
84 static const bool needsDestruction = false; 87 static const bool needsDestruction = false;
85 static void constructDeletedValue(blink::PropertyHandle& slot, bool) 88 static void constructDeletedValue(blink::PropertyHandle& slot, bool)
86 { 89 {
87 new (NotNull, &slot) blink::PropertyHandle(blink::PropertyHandle::delete dValueForHashTraits()); 90 new (NotNull, &slot) blink::PropertyHandle(blink::PropertyHandle::delete dValueForHashTraits());
88 } 91 }
89 static bool isDeletedValue(blink::PropertyHandle value) 92 static bool isDeletedValue(blink::PropertyHandle value)
90 { 93 {
91 return value.isDeletedValueForHashTraits(); 94 return value.isDeletedValueForHashTraits();
92 } 95 }
93 96
94 static blink::PropertyHandle emptyValue() 97 static blink::PropertyHandle emptyValue()
95 { 98 {
96 return blink::PropertyHandle::emptyValueForHashTraits(); 99 return blink::PropertyHandle::emptyValueForHashTraits();
97 } 100 }
98 }; 101 };
99 102
100 } // namespace WTF 103 } // namespace WTF
101 104
102 #endif // PropertyHandle_h 105 #endif // PropertyHandle_h
OLDNEW
« no previous file with comments | « Source/core/animation/PrimitiveInterpolation.h ('k') | Source/core/animation/SampledEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698