Chromium Code Reviews| Index: third_party/WebKit/Source/core/animation/Animation.cpp |
| diff --git a/third_party/WebKit/Source/core/animation/Animation.cpp b/third_party/WebKit/Source/core/animation/Animation.cpp |
| index f15ce8ee4ae1ab392292d87af62f7682b28c3a65..985b41151db54ba31ce2ccaa771227da22ad75ac 100644 |
| --- a/third_party/WebKit/Source/core/animation/Animation.cpp |
| +++ b/third_party/WebKit/Source/core/animation/Animation.cpp |
| @@ -114,6 +114,15 @@ Animation::~Animation() |
| destroyCompositorPlayer(); |
|
haraken
2015/12/09 14:02:04
Can we remove this now?
sof
2015/12/09 14:04:33
No, the AnimationTimeline keeps a weak reference t
|
| } |
| +void Animation::dispose() |
| +{ |
| + destroyCompositorPlayer(); |
| + // If the AnimationTimeline and its Animation objects are |
| + // finalized by the same GC, we have to eagerly clear out |
| + // this Animation object's compositor player registration. |
| + ASSERT(!m_compositorPlayer); |
| +} |
| + |
| double Animation::effectEnd() const |
| { |
| return m_content ? m_content->endTimeInternal() : 0; |
| @@ -929,8 +938,8 @@ void Animation::destroyCompositorPlayer() |
| if (m_compositorPlayer) { |
| detachCompositorTimeline(); |
| m_compositorPlayer->setAnimationDelegate(nullptr); |
| + m_compositorPlayer.clear(); |
| } |
| - m_compositorPlayer.clear(); |
| } |
| void Animation::attachCompositorTimeline() |