| Index: Source/core/animation/css/CSSAnimations.h
|
| diff --git a/Source/core/animation/css/CSSAnimations.h b/Source/core/animation/css/CSSAnimations.h
|
| index e730fc11a58179663f6765d0d5787533ba33040b..0f48eae048adb160110a2828cafcaadc44ccddb4 100644
|
| --- a/Source/core/animation/css/CSSAnimations.h
|
| +++ b/Source/core/animation/css/CSSAnimations.h
|
| @@ -78,8 +78,8 @@ public:
|
| {
|
| NewTransition newTransition;
|
| newTransition.id = id;
|
| - newTransition.from = from;
|
| - newTransition.to = to;
|
| + newTransition.from = const_cast<AnimatableValue*>(from);
|
| + newTransition.to = const_cast<AnimatableValue*>(to);
|
| newTransition.animation = animation;
|
| m_newTransitions.set(id, newTransition);
|
| }
|
| @@ -96,12 +96,20 @@ public:
|
| const Vector<AtomicString>& animationsWithPauseToggled() const { return m_animationsWithPauseToggled; }
|
|
|
| struct NewTransition {
|
| + ALLOW_ONLY_INLINE_ALLOCATION();
|
| + public:
|
| + void trace(Visitor* visitor)
|
| + {
|
| + visitor->trace(from);
|
| + visitor->trace(to);
|
| + }
|
| +
|
| CSSPropertyID id;
|
| - const AnimatableValue* from;
|
| - const AnimatableValue* to;
|
| + RawPtrWillBeMember<AnimatableValue> from;
|
| + RawPtrWillBeMember<AnimatableValue> to;
|
| RefPtr<InertAnimation> animation;
|
| };
|
| - typedef HashMap<CSSPropertyID, NewTransition> NewTransitionMap;
|
| + typedef WillBeHeapHashMap<CSSPropertyID, NewTransition> NewTransitionMap;
|
| const NewTransitionMap& newTransitions() const { return m_newTransitions; }
|
| const HashSet<CSSPropertyID>& cancelledTransitions() const { return m_cancelledTransitions; }
|
|
|
| @@ -164,11 +172,19 @@ private:
|
| // ParGroup to drive multiple animations from a single AnimationPlayer.
|
| typedef HashMap<AtomicString, HashSet<RefPtr<AnimationPlayer> > > AnimationMap;
|
| struct RunningTransition {
|
| + ALLOW_ONLY_INLINE_ALLOCATION();
|
| + public:
|
| + void trace(Visitor* visitor)
|
| + {
|
| + visitor->trace(from);
|
| + visitor->trace(to);
|
| + }
|
| +
|
| Animation* transition; // The TransitionTimeline keeps the AnimationPlayers alive
|
| - const AnimatableValue* from;
|
| - const AnimatableValue* to;
|
| + RawPtrWillBeMember<AnimatableValue> from;
|
| + RawPtrWillBeMember<AnimatableValue> to;
|
| };
|
| - typedef HashMap<CSSPropertyID, RunningTransition > TransitionMap;
|
| + typedef WillBeHeapHashMap<CSSPropertyID, RunningTransition> TransitionMap;
|
| AnimationMap m_animations;
|
| TransitionMap m_transitions;
|
| OwnPtr<CSSAnimationUpdate> m_pendingUpdate;
|
|
|