| Index: Source/core/animation/css/CSSAnimations.h
|
| diff --git a/Source/core/animation/css/CSSAnimations.h b/Source/core/animation/css/CSSAnimations.h
|
| index 0ecb2e2dad4625796c4261d4ed6df4102dbe6c88..694f4ad517f58e0177b49ed543d7291a34c9695c 100644
|
| --- a/Source/core/animation/css/CSSAnimations.h
|
| +++ b/Source/core/animation/css/CSSAnimations.h
|
| @@ -54,7 +54,7 @@ class StyleRuleKeyframes;
|
| // This includes updates to animations/transitions as well as the Interpolations to be applied.
|
| class CSSAnimationUpdate FINAL : public NoBaseWillBeGarbageCollectedFinalized<CSSAnimationUpdate> {
|
| public:
|
| - void startAnimation(AtomicString& animationName, PassRefPtr<InertAnimation> animation)
|
| + void startAnimation(AtomicString& animationName, PassRefPtrWillBeRawPtr<InertAnimation> animation)
|
| {
|
| NewAnimation newAnimation;
|
| newAnimation.name = animationName;
|
| @@ -73,7 +73,7 @@ public:
|
| m_animationsWithPauseToggled.append(name);
|
| }
|
|
|
| - void startTransition(CSSPropertyID id, CSSPropertyID eventId, const AnimatableValue* from, const AnimatableValue* to, PassRefPtr<InertAnimation> animation)
|
| + void startTransition(CSSPropertyID id, CSSPropertyID eventId, const AnimatableValue* from, const AnimatableValue* to, PassRefPtrWillBeRawPtr<InertAnimation> animation)
|
| {
|
| NewTransition newTransition;
|
| newTransition.id = id;
|
| @@ -87,12 +87,19 @@ public:
|
| void cancelTransition(CSSPropertyID id) { m_cancelledTransitions.add(id); }
|
|
|
| struct NewAnimation {
|
| + ALLOW_ONLY_INLINE_ALLOCATION();
|
| + public:
|
| + void trace(Visitor* visitor)
|
| + {
|
| + visitor->trace(animation);
|
| + }
|
| +
|
| AtomicString name;
|
| - RefPtr<InertAnimation> animation;
|
| + RefPtrWillBeMember<InertAnimation> animation;
|
| };
|
| - const Vector<NewAnimation>& newAnimations() const { return m_newAnimations; }
|
| + const WillBeHeapVector<NewAnimation>& newAnimations() const { return m_newAnimations; }
|
| const Vector<AtomicString>& cancelledAnimationNames() const { return m_cancelledAnimationNames; }
|
| - const HashSet<const AnimationPlayer*>& cancelledAnimationAnimationPlayers() const { return m_cancelledAnimationPlayers; }
|
| + const WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer> >& cancelledAnimationAnimationPlayers() const { return m_cancelledAnimationPlayers; }
|
| const Vector<AtomicString>& animationsWithPauseToggled() const { return m_animationsWithPauseToggled; }
|
|
|
| struct NewTransition {
|
| @@ -102,13 +109,14 @@ public:
|
| {
|
| visitor->trace(from);
|
| visitor->trace(to);
|
| + visitor->trace(animation);
|
| }
|
|
|
| CSSPropertyID id;
|
| CSSPropertyID eventId;
|
| RawPtrWillBeMember<const AnimatableValue> from;
|
| RawPtrWillBeMember<const AnimatableValue> to;
|
| - RefPtr<InertAnimation> animation;
|
| + RefPtrWillBeMember<InertAnimation> animation;
|
| };
|
| typedef WillBeHeapHashMap<CSSPropertyID, NewTransition> NewTransitionMap;
|
| const NewTransitionMap& newTransitions() const { return m_newTransitions; }
|
| @@ -139,9 +147,9 @@ private:
|
| // will be started. Note that there may be multiple animations present
|
| // with the same name, due to the way in which we split up animations with
|
| // incomplete keyframes.
|
| - Vector<NewAnimation> m_newAnimations;
|
| + WillBeHeapVector<NewAnimation> m_newAnimations;
|
| Vector<AtomicString> m_cancelledAnimationNames;
|
| - HashSet<const AnimationPlayer*> m_cancelledAnimationPlayers;
|
| + WillBeHeapHashSet<RawPtrWillBeMember<const AnimationPlayer> > m_cancelledAnimationPlayers;
|
| Vector<AtomicString> m_animationsWithPauseToggled;
|
|
|
| NewTransitionMap m_newTransitions;
|
| @@ -183,14 +191,15 @@ private:
|
| {
|
| visitor->trace(from);
|
| visitor->trace(to);
|
| + visitor->trace(player);
|
| }
|
|
|
| - RefPtr<AnimationPlayer> player;
|
| + RefPtrWillBeMember<AnimationPlayer> player;
|
| RawPtrWillBeMember<const AnimatableValue> from;
|
| RawPtrWillBeMember<const AnimatableValue> to;
|
| };
|
|
|
| - typedef HashMap<AtomicString, RefPtr<AnimationPlayer> > AnimationMap;
|
| + typedef WillBeHeapHashMap<AtomicString, RefPtrWillBeMember<AnimationPlayer> > AnimationMap;
|
| AnimationMap m_animations;
|
|
|
| typedef WillBeHeapHashMap<CSSPropertyID, RunningTransition> TransitionMap;
|
| @@ -243,4 +252,10 @@ private:
|
|
|
| } // namespace WebCore
|
|
|
| +namespace WTF {
|
| +template<> struct VectorTraits<WebCore::CSSAnimationUpdate::NewAnimation> : VectorTraitsBase<WebCore::CSSAnimationUpdate::NewAnimation> {
|
| + static const bool canInitializeWithMemset = true;
|
| +};
|
| +}
|
| +
|
| #endif
|
|
|