| Index: Source/core/frame/animation/CompositeAnimation.cpp
|
| diff --git a/Source/core/frame/animation/CompositeAnimation.cpp b/Source/core/frame/animation/CompositeAnimation.cpp
|
| index d796e72cf5f7ca72e9868edee1658a6dab4c7d6b..f3c52dba4ca602dbd50d66cab5010e266764c7f3 100644
|
| --- a/Source/core/frame/animation/CompositeAnimation.cpp
|
| +++ b/Source/core/frame/animation/CompositeAnimation.cpp
|
| @@ -70,10 +70,10 @@ void CompositeAnimation::clearRenderer()
|
| }
|
| }
|
|
|
| -void CompositeAnimation::updateTransitions(RenderObject* renderer, RenderStyle* currentStyle, RenderStyle* targetStyle)
|
| +void CompositeAnimation::updateTransitions(RenderObject& renderer, RenderStyle* currentStyle, RenderStyle& targetStyle)
|
| {
|
| // If currentStyle is null or there are no old or new transitions, just skip it
|
| - if (!currentStyle || (!targetStyle->transitions() && m_transitions.isEmpty()))
|
| + if (!currentStyle || (!targetStyle.transitions() && m_transitions.isEmpty()))
|
| return;
|
|
|
| // Mark all existing transitions as no longer active. We will mark the still active ones
|
| @@ -85,9 +85,9 @@ void CompositeAnimation::updateTransitions(RenderObject* renderer, RenderStyle*
|
| RefPtr<RenderStyle> modifiedCurrentStyle;
|
|
|
| // Check to see if we need to update the active transitions
|
| - if (targetStyle->transitions()) {
|
| - for (size_t i = 0; i < targetStyle->transitions()->size(); ++i) {
|
| - const CSSAnimationData* anim = targetStyle->transitions()->animation(i);
|
| + if (targetStyle.transitions()) {
|
| + for (size_t i = 0; i < targetStyle.transitions()->size(); ++i) {
|
| + const CSSAnimationData* anim = targetStyle.transitions()->animation(i);
|
| bool isActiveTransition = anim->duration() || anim->delay() > 0;
|
|
|
| CSSAnimationData::AnimationMode mode = anim->animationMode();
|
| @@ -137,7 +137,7 @@ void CompositeAnimation::updateTransitions(RenderObject* renderer, RenderStyle*
|
| // you have both an explicit transition-property and 'all' in the same
|
| // list. In this case, the latter one overrides the earlier one, so we
|
| // behave as though this is a running animation being replaced.
|
| - if (!implAnim->isTargetPropertyEqual(prop, targetStyle)) {
|
| + if (!implAnim->isTargetPropertyEqual(prop, &targetStyle)) {
|
| // For accelerated animations we need to return a new RenderStyle with the _current_ value
|
| // of the property, so that restarted transitions use the correct starting point.
|
| if (CSSPropertyAnimation::animationOfPropertyIsAccelerated(prop) && implAnim->isAccelerated()) {
|
| @@ -152,7 +152,7 @@ void CompositeAnimation::updateTransitions(RenderObject* renderer, RenderStyle*
|
| }
|
| } else {
|
| // We need to start a transition if it is active and the properties don't match
|
| - equal = !isActiveTransition || CSSPropertyAnimation::propertiesEqual(prop, fromStyle, targetStyle);
|
| + equal = !isActiveTransition || CSSPropertyAnimation::propertiesEqual(prop, fromStyle, &targetStyle);
|
| }
|
|
|
| // We can be in this loop with an inactive transition (!isActiveTransition). We need
|
| @@ -187,15 +187,15 @@ void CompositeAnimation::updateTransitions(RenderObject* renderer, RenderStyle*
|
| m_transitions.remove(toBeRemoved[j]);
|
| }
|
|
|
| -void CompositeAnimation::updateKeyframeAnimations(RenderObject* renderer, RenderStyle* currentStyle, RenderStyle* targetStyle)
|
| +void CompositeAnimation::updateKeyframeAnimations(RenderObject& renderer, RenderStyle* currentStyle, RenderStyle& targetStyle)
|
| {
|
| // Nothing to do if we don't have any animations, and didn't have any before
|
| - if (m_keyframeAnimations.isEmpty() && !targetStyle->hasAnimations())
|
| + if (m_keyframeAnimations.isEmpty() && !targetStyle.hasAnimations())
|
| return;
|
|
|
| AnimationNameMap::const_iterator kfend = m_keyframeAnimations.end();
|
|
|
| - if (currentStyle && currentStyle->hasAnimations() && targetStyle->hasAnimations() && *(currentStyle->animations()) == *(targetStyle->animations())) {
|
| + if (currentStyle && currentStyle->hasAnimations() && targetStyle.hasAnimations() && *(currentStyle->animations()) == *(targetStyle.animations())) {
|
| // The current and target animations are the same so we just need to toss any
|
| // animation which is finished (postActive).
|
| for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) {
|
| @@ -213,10 +213,10 @@ void CompositeAnimation::updateKeyframeAnimations(RenderObject* renderer, Render
|
| DEFINE_STATIC_LOCAL(const AtomicString, none, ("none", AtomicString::ConstructFromLiteral));
|
|
|
| // Now mark any still active animations as active and add any new animations.
|
| - if (targetStyle->animations()) {
|
| - int numAnims = targetStyle->animations()->size();
|
| + if (targetStyle.animations()) {
|
| + int numAnims = targetStyle.animations()->size();
|
| for (int i = 0; i < numAnims; ++i) {
|
| - const CSSAnimationData* anim = targetStyle->animations()->animation(i);
|
| + const CSSAnimationData* anim = targetStyle.animations()->animation(i);
|
| if (!anim->isValidAnimation())
|
| continue;
|
|
|
| @@ -276,7 +276,7 @@ void CompositeAnimation::updateKeyframeAnimations(RenderObject* renderer, Render
|
| }
|
| }
|
|
|
| -PassRefPtr<RenderStyle> CompositeAnimation::animate(RenderObject* renderer, RenderStyle* currentStyle, RenderStyle* targetStyle)
|
| +PassRefPtr<RenderStyle> CompositeAnimation::animate(RenderObject& renderer, RenderStyle* currentStyle, RenderStyle& targetStyle)
|
| {
|
| RefPtr<RenderStyle> resultStyle;
|
|
|
| @@ -291,7 +291,7 @@ PassRefPtr<RenderStyle> CompositeAnimation::animate(RenderObject* renderer, Rend
|
| CSSPropertyTransitionsMap::const_iterator end = m_transitions.end();
|
| for (CSSPropertyTransitionsMap::const_iterator it = m_transitions.begin(); it != end; ++it) {
|
| if (ImplicitAnimation* anim = it->value.get())
|
| - anim->animate(this, renderer, currentStyle, targetStyle, resultStyle);
|
| + anim->animate(this, &renderer, currentStyle, &targetStyle, resultStyle);
|
| }
|
| }
|
| }
|
| @@ -301,10 +301,10 @@ PassRefPtr<RenderStyle> CompositeAnimation::animate(RenderObject* renderer, Rend
|
| for (Vector<AtomicString>::const_iterator it = m_keyframeAnimationOrderList.begin(); it != m_keyframeAnimationOrderList.end(); ++it) {
|
| RefPtr<KeyframeAnimation> keyframeAnim = m_keyframeAnimations.get(*it);
|
| ASSERT(keyframeAnim);
|
| - keyframeAnim->animate(this, renderer, currentStyle, targetStyle, resultStyle);
|
| + keyframeAnim->animate(this, &renderer, currentStyle, &targetStyle, resultStyle);
|
| }
|
|
|
| - return resultStyle ? resultStyle.release() : targetStyle;
|
| + return resultStyle ? resultStyle.release() : PassRefPtr<RenderStyle>(targetStyle);
|
| }
|
|
|
| PassRefPtr<RenderStyle> CompositeAnimation::getAnimatedStyle() const
|
|
|