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

Unified Diff: Source/core/animation/Animation.cpp

Issue 225073004: Oilpan: Completely move core/animations/ to oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/animation/Animation.cpp
diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp
index bf7e0262e533f82c5c48090f67cf9509995bb299..ff8f6444387acd9a8e39c09500e8d61159e57470 100644
--- a/Source/core/animation/Animation.cpp
+++ b/Source/core/animation/Animation.cpp
@@ -46,39 +46,39 @@
namespace WebCore {
-PassRefPtr<Animation> Animation::create(PassRefPtr<Element> target, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Timing& timing, Priority priority, PassOwnPtr<EventDelegate> eventDelegate)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(PassRefPtr<Element> target, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Timing& timing, Priority priority, PassOwnPtr<EventDelegate> eventDelegate)
{
- return adoptRef(new Animation(target, effect, timing, priority, eventDelegate));
+ return adoptRefWillBeNoop(new Animation(target, effect, timing, priority, eventDelegate));
}
-PassRefPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Dictionary& timingInputDictionary)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, const Dictionary& timingInputDictionary)
{
ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
return create(element, effect, TimingInput::convert(timingInputDictionary));
}
-PassRefPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, double duration)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect, double duration)
{
ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
return create(element, effect, TimingInput::convert(duration));
}
-PassRefPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, PassRefPtrWillBeRawPtr<AnimationEffect> effect)
{
ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
return create(element, effect, Timing());
}
-PassRefPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, const Dictionary& timingInputDictionary, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, const Dictionary& timingInputDictionary, ExceptionState& exceptionState)
{
ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
UseCounter::count(element->document(), UseCounter::AnimationConstructorKeyframeListEffectObjectTiming);
return create(element, EffectInput::convert(element, keyframeDictionaryVector, exceptionState), TimingInput::convert(timingInputDictionary));
}
-PassRefPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, double duration, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, double duration, ExceptionState& exceptionState)
{
ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
UseCounter::count(element->document(), UseCounter::AnimationConstructorKeyframeListEffectDoubleTiming);
return create(element, EffectInput::convert(element, keyframeDictionaryVector, exceptionState), TimingInput::convert(duration));
}
-PassRefPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, ExceptionState& exceptionState)
+PassRefPtrWillBeRawPtr<Animation> Animation::create(Element* element, const Vector<Dictionary>& keyframeDictionaryVector, ExceptionState& exceptionState)
{
ASSERT(RuntimeEnabledFeatures::webAnimationsAPIEnabled());
UseCounter::count(element->document(), UseCounter::AnimationConstructorKeyframeListEffectNoTiming);
@@ -89,27 +89,31 @@ Animation::Animation(PassRefPtr<Element> target, PassRefPtrWillBeRawPtr<Animatio
: TimedItem(timing, eventDelegate)
, m_target(target)
, m_effect(effect)
- , m_sampledEffect(0)
+ , m_sampledEffect(nullptr)
, m_priority(priority)
{
}
-void Animation::didAttach()
+void Animation::attach(AnimationPlayer* player)
{
if (m_target) {
- m_target->ensureActiveAnimations().players().add(player());
+ m_target->ensureActiveAnimations().players().add(player);
m_target->setNeedsAnimationStyleRecalc();
}
+ TimedItem::attach(player);
}
-void Animation::willDetach()
+void Animation::detach()
{
if (m_target) {
+#if !ENABLE(OILPAN)
m_target->activeAnimations()->players().remove(player());
+#endif
m_target->setNeedsAnimationStyleRecalc();
}
if (m_sampledEffect)
clearEffects();
+ TimedItem::detach();
}
void Animation::specifiedTimingChanged()
@@ -137,7 +141,7 @@ void Animation::applyEffects()
if (m_sampledEffect) {
m_sampledEffect->setInterpolations(interpolations.release());
} else if (!interpolations->isEmpty()) {
- OwnPtr<SampledEffect> sampledEffect = SampledEffect::create(this, interpolations.release());
+ OwnPtrWillBeRawPtr<SampledEffect> sampledEffect = SampledEffect::create(this, interpolations.release());
m_sampledEffect = sampledEffect.get();
ensureAnimationStack(m_target.get()).add(sampledEffect.release());
} else {
@@ -152,8 +156,8 @@ void Animation::clearEffects()
ASSERT(player());
ASSERT(m_sampledEffect);
- m_sampledEffect->clear();
- m_sampledEffect = 0;
+ m_sampledEffect->detach();
+ m_sampledEffect = nullptr;
cancelAnimationOnCompositor();
m_target->setNeedsAnimationStyleRecalc();
invalidate();
@@ -212,7 +216,7 @@ double Animation::calculateTimeToEffectChange(bool forwards, double localTime, d
void Animation::notifySampledEffectRemovedFromAnimationStack()
{
ASSERT(m_sampledEffect);
- m_sampledEffect = 0;
+ m_sampledEffect = nullptr;
}
bool Animation::isCandidateForAnimationOnCompositor() const
@@ -274,4 +278,11 @@ void Animation::pauseAnimationForTestingOnCompositor(double pauseTime)
CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target.get(), m_compositorAnimationIds[i], pauseTime);
}
+void Animation::trace(Visitor* visitor)
+{
+ visitor->trace(m_effect);
+ visitor->trace(m_sampledEffect);
+ TimedItem::trace(visitor);
+}
+
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698