Index: Source/core/animation/AnimatableValue.h |
diff --git a/Source/core/animation/AnimatableValue.h b/Source/core/animation/AnimatableValue.h |
index 58ce56e3cf02a7d787e17f18b3c832655c501856..47046a2958fc38c250efecb9637a92ed18492920 100644 |
--- a/Source/core/animation/AnimatableValue.h |
+++ b/Source/core/animation/AnimatableValue.h |
@@ -32,19 +32,20 @@ |
#define AnimatableValue_h |
#include "core/css/CSSValue.h" |
+#include "heap/Handle.h" |
#include "wtf/RefCounted.h" |
namespace WebCore { |
-class AnimatableValue : public RefCounted<AnimatableValue> { |
+class AnimatableValue : public RefCountedWillBeGarbageCollectedFinalized<AnimatableValue> { |
public: |
virtual ~AnimatableValue() { } |
static const AnimatableValue* neutralValue(); |
- static PassRefPtr<AnimatableValue> interpolate(const AnimatableValue*, const AnimatableValue*, double fraction); |
+ static PassRefPtrWillBeRawPtr<AnimatableValue> interpolate(const AnimatableValue*, const AnimatableValue*, double fraction); |
// For noncommutative values read add(A, B) to mean the value A with B composed onto it. |
- static PassRefPtr<AnimatableValue> add(const AnimatableValue*, const AnimatableValue*); |
+ static PassRefPtrWillBeRawPtr<AnimatableValue> add(const AnimatableValue*, const AnimatableValue*); |
static double distance(const AnimatableValue* from, const AnimatableValue* to); |
static bool usesDefaultInterpolation(const AnimatableValue* from, const AnimatableValue* to) |
{ |
@@ -87,6 +88,8 @@ public: |
return value->type() == type(); |
} |
+ virtual void trace(Visitor*) = 0; |
+ |
protected: |
enum AnimatableType { |
TypeClipPathOperation, |
@@ -112,17 +115,17 @@ protected: |
}; |
virtual bool usesDefaultInterpolationWith(const AnimatableValue* value) const { return false; } |
- virtual PassRefPtr<AnimatableValue> interpolateTo(const AnimatableValue*, double fraction) const = 0; |
- static PassRefPtr<AnimatableValue> defaultInterpolateTo(const AnimatableValue* left, const AnimatableValue* right, double fraction) { return takeConstRef((fraction < 0.5) ? left : right); } |
+ virtual PassRefPtrWillBeRawPtr<AnimatableValue> interpolateTo(const AnimatableValue*, double fraction) const = 0; |
+ static PassRefPtrWillBeRawPtr<AnimatableValue> defaultInterpolateTo(const AnimatableValue* left, const AnimatableValue* right, double fraction) { return takeConstRef((fraction < 0.5) ? left : right); } |
// For noncommutative values read A->addWith(B) to mean the value A with B composed onto it. |
- virtual PassRefPtr<AnimatableValue> addWith(const AnimatableValue*) const; |
- static PassRefPtr<AnimatableValue> defaultAddWith(const AnimatableValue* left, const AnimatableValue* right) { return takeConstRef(right); } |
+ virtual PassRefPtrWillBeRawPtr<AnimatableValue> addWith(const AnimatableValue*) const; |
+ static PassRefPtrWillBeRawPtr<AnimatableValue> defaultAddWith(const AnimatableValue* left, const AnimatableValue* right) { return takeConstRef(right); } |
template <class T> |
- static PassRefPtr<T> takeConstRef(const T* value) { return PassRefPtr<T>(const_cast<T*>(value)); } |
+ static PassRefPtrWillBeRawPtr<T> takeConstRef(const T* value) { return PassRefPtrWillBeRawPtr<T>(const_cast<T*>(value)); } |
private: |
virtual AnimatableType type() const = 0; |