Index: Source/core/animation/Animation.cpp |
diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp |
index 0d46063e67fec9d0681b2ddf6bce1999b8e79ed6..689f089a1e955a00b85023a6bd54a2670430d4c5 100644 |
--- a/Source/core/animation/Animation.cpp |
+++ b/Source/core/animation/Animation.cpp |
@@ -58,14 +58,14 @@ static unsigned nextSequenceNumber() |
} |
-PassRefPtrWillBeRawPtr<Animation> Animation::create(AnimationEffect* effect, AnimationTimeline* timeline) |
+Animation* Animation::create(AnimationEffect* effect, AnimationTimeline* timeline) |
{ |
if (!timeline) { |
// FIXME: Support creating animations without a timeline. |
return nullptr; |
} |
- RefPtrWillBeRawPtr<Animation> animation = adoptRefWillBeNoop(new Animation(timeline->document()->contextDocument().get(), *timeline, effect)); |
+ Animation* animation = new Animation(timeline->document()->contextDocument().get(), *timeline, effect); |
animation->suspendIfNeeded(); |
if (timeline) { |
@@ -73,7 +73,7 @@ PassRefPtrWillBeRawPtr<Animation> Animation::create(AnimationEffect* effect, Ani |
animation->attachCompositorTimeline(); |
} |
- return animation.release(); |
+ return animation; |
} |
Animation::Animation(ExecutionContext* executionContext, AnimationTimeline& timeline, AnimationEffect* content) |
@@ -110,14 +110,17 @@ Animation::Animation(ExecutionContext* executionContext, AnimationTimeline& time |
Animation::~Animation() |
{ |
+ destroyCompositorPlayer(); |
+} |
+ |
+void Animation::disposeAnimation() |
+{ |
#if !ENABLE(OILPAN) |
if (m_content) |
m_content->detach(); |
if (m_timeline) |
m_timeline->animationDestroyed(this); |
#endif |
- |
- destroyCompositorPlayer(); |
} |
#if !ENABLE(OILPAN) |
@@ -1101,7 +1104,7 @@ DEFINE_TRACE(Animation) |
visitor->trace(m_pendingFinishedEvent); |
visitor->trace(m_finishedPromise); |
visitor->trace(m_readyPromise); |
- EventTargetWithInlineData::trace(visitor); |
+ RefCountedGarbageCollectedEventTargetWithInlineData<Animation>::trace(visitor); |
ActiveDOMObject::trace(visitor); |
} |