| Index: third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
|
| diff --git a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
|
| index acfa7fa8a018506048d4337ceb2c1b49d581950c..3d41d7aaa141a273189fa4dba5332db52612c28f 100644
|
| --- a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
|
| +++ b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
|
| @@ -478,11 +478,14 @@ SMILTime SMILTimeContainer::updateAnimations(SMILTime elapsed, bool seekToTime)
|
| ASSERT(animation->hasValidAttributeType());
|
|
|
| // Results are accumulated to the first animation that animates and contributes to a particular element/attribute pair.
|
| - if (!resultElement)
|
| + if (!resultElement) {
|
| resultElement = animation;
|
| + resultElement->lockAnimatedType();
|
| + }
|
|
|
| // This will calculate the contribution from the animation and add it to the resultElement.
|
| if (!animation->progress(elapsed, resultElement, seekToTime) && resultElement == animation) {
|
| + resultElement->unlockAnimatedType();
|
| resultElement->clearAnimatedType();
|
| resultElement = nullptr;
|
| }
|
| @@ -492,8 +495,10 @@ SMILTime SMILTimeContainer::updateAnimations(SMILTime elapsed, bool seekToTime)
|
| earliestFireTime = std::min(nextFireTime, earliestFireTime);
|
| }
|
|
|
| - if (resultElement)
|
| + if (resultElement) {
|
| animationsToApply.append(resultElement);
|
| + resultElement->unlockAnimatedType();
|
| + }
|
| }
|
| m_scheduledAnimations.removeAll(invalidKeys);
|
|
|
|
|