Index: Source/core/animation/css/CSSAnimations.h |
diff --git a/Source/core/animation/css/CSSAnimations.h b/Source/core/animation/css/CSSAnimations.h |
index 93a8abfb1ad33de1876d2d9212ec3ce88fe568b5..3a39eb47f3efb47e98cfafc5fa1bb7c84d2c6c7b 100644 |
--- a/Source/core/animation/css/CSSAnimations.h |
+++ b/Source/core/animation/css/CSSAnimations.h |
@@ -37,6 +37,7 @@ |
#include "core/animation/css/CSSAnimationUpdate.h" |
#include "core/css/CSSKeyframesRule.h" |
#include "core/css/StylePropertySet.h" |
+#include "core/css/resolver/StyleResolverState.h" |
#include "core/dom/Document.h" |
#include "core/dom/Element.h" |
#include "wtf/HashMap.h" |
@@ -60,11 +61,19 @@ public: |
static const StylePropertyShorthand& propertiesForTransitionAll(); |
static bool isAnimatableProperty(CSSPropertyID); |
- static PassOwnPtrWillBeRawPtr<CSSAnimationUpdate> calculateUpdate(const Element* animatingElement, Element&, const ComputedStyle&, ComputedStyle* parentStyle, StyleResolver*); |
- |
- void setPendingUpdate(PassOwnPtrWillBeRawPtr<CSSAnimationUpdate> update) { m_pendingUpdate = update; } |
+ static void calculateUpdate(const Element* animatingElement, Element&, const ComputedStyle&, ComputedStyle* parentStyle, CSSAnimationUpdate&, StyleResolver*); |
+ |
+ void copy(const CSSAnimationUpdate& update) |
alancutter (OOO until 2018)
2015/08/20 02:06:58
I'd still keep this method named setPendingUpdate(
haraken
2015/08/20 03:01:25
Done.
|
+ { |
+ clearPendingUpdate(); |
+ m_pendingUpdate.copy(update); |
+ } |
+ void clearPendingUpdate() |
+ { |
+ m_pendingUpdate.clear(); |
+ } |
void maybeApplyPendingUpdate(Element*); |
- bool isEmpty() const { return m_animations.isEmpty() && m_transitions.isEmpty() && !m_pendingUpdate; } |
+ bool isEmpty() const { return m_animations.isEmpty() && m_transitions.isEmpty() && m_pendingUpdate.isEmpty(); } |
void cancel(); |
DECLARE_TRACE(); |
@@ -120,16 +129,16 @@ private: |
using TransitionMap = WillBeHeapHashMap<CSSPropertyID, RunningTransition>; |
TransitionMap m_transitions; |
- OwnPtrWillBeMember<CSSAnimationUpdate> m_pendingUpdate; |
+ CSSAnimationUpdate m_pendingUpdate; |
ActiveInterpolationMap m_previousActiveInterpolationsForAnimations; |
- static void calculateAnimationUpdate(CSSAnimationUpdate*, const Element* animatingElement, Element&, const ComputedStyle&, ComputedStyle* parentStyle, StyleResolver*); |
- static void calculateTransitionUpdate(CSSAnimationUpdate*, const Element* animatingElement, const ComputedStyle&); |
- static void calculateTransitionUpdateForProperty(CSSPropertyID, const CSSTransitionData&, size_t transitionIndex, const ComputedStyle& oldStyle, const ComputedStyle&, const TransitionMap* activeTransitions, CSSAnimationUpdate*, const Element*); |
+ static void calculateAnimationUpdate(CSSAnimationUpdate&, const Element* animatingElement, Element&, const ComputedStyle&, ComputedStyle* parentStyle, StyleResolver*); |
+ static void calculateTransitionUpdate(CSSAnimationUpdate&, const Element* animatingElement, const ComputedStyle&); |
+ static void calculateTransitionUpdateForProperty(CSSPropertyID, const CSSTransitionData&, size_t transitionIndex, const ComputedStyle& oldStyle, const ComputedStyle&, const TransitionMap* activeTransitions, CSSAnimationUpdate&, const Element*); |
- static void calculateAnimationActiveInterpolations(CSSAnimationUpdate*, const Element* animatingElement, double timelineCurrentTime); |
- static void calculateTransitionActiveInterpolations(CSSAnimationUpdate*, const Element* animatingElement, double timelineCurrentTime); |
+ static void calculateAnimationActiveInterpolations(CSSAnimationUpdate&, const Element* animatingElement, double timelineCurrentTime); |
+ static void calculateTransitionActiveInterpolations(CSSAnimationUpdate&, const Element* animatingElement, double timelineCurrentTime); |
class AnimationEventDelegate final : public AnimationEffect::EventDelegate { |
public: |