Index: Source/core/animation/Interpolation.h |
diff --git a/Source/core/animation/Interpolation.h b/Source/core/animation/Interpolation.h |
index cf4eb1d03c55d8099504a2ab089129bfa5b370bf..e565da02192101eeae4bd8b366533dd1b98c70d1 100644 |
--- a/Source/core/animation/Interpolation.h |
+++ b/Source/core/animation/Interpolation.h |
@@ -7,17 +7,18 @@ |
#include "CSSPropertyNames.h" |
#include "core/animation/InterpolableValue.h" |
+#include "heap/Handle.h" |
#include "wtf/RefCounted.h" |
namespace WebCore { |
class StyleResolverState; |
-class Interpolation : public RefCounted<Interpolation> { |
+class Interpolation : public RefCountedWillBeGarbageCollectedFinalized<Interpolation> { |
public: |
- static PassRefPtr<Interpolation> create(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end) |
+ static PassRefPtrWillBeRawPtr<Interpolation> create(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end) |
{ |
- return adoptRef(new Interpolation(start, end)); |
+ return adoptRefWillBeNoop(new Interpolation(start, end)); |
} |
void interpolate(int iteration, double fraction) const; |
@@ -25,8 +26,9 @@ public: |
virtual bool isStyleInterpolation() const { return false; } |
virtual bool isLegacyStyleInterpolation() const { return false; } |
- virtual ~Interpolation() |
- { } |
+ virtual ~Interpolation() { } |
+ |
+ virtual void trace(Visitor*) { } |
protected: |
const OwnPtr<InterpolableValue> m_start; |
@@ -60,20 +62,23 @@ public: |
CSSPropertyID id() const { return m_id; } |
+ virtual void trace(Visitor*) OVERRIDE; |
+ |
protected: |
CSSPropertyID m_id; |
StyleInterpolation(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end, CSSPropertyID id) |
: Interpolation(start, end) |
, m_id(id) |
- { } |
+ { |
+ } |
}; |
class LegacyStyleInterpolation : public StyleInterpolation { |
public: |
- static PassRefPtr<LegacyStyleInterpolation> create(PassRefPtrWillBeRawPtr<AnimatableValue> start, PassRefPtrWillBeRawPtr<AnimatableValue> end, CSSPropertyID id) |
+ static PassRefPtrWillBeRawPtr<LegacyStyleInterpolation> create(PassRefPtrWillBeRawPtr<AnimatableValue> start, PassRefPtrWillBeRawPtr<AnimatableValue> end, CSSPropertyID id) |
{ |
- return adoptRef(new LegacyStyleInterpolation(InterpolableAnimatableValue::create(start), InterpolableAnimatableValue::create(end), id)); |
+ return adoptRefWillBeNoop(new LegacyStyleInterpolation(InterpolableAnimatableValue::create(start), InterpolableAnimatableValue::create(end), id)); |
} |
virtual void apply(StyleResolverState&) const; |
@@ -85,10 +90,13 @@ public: |
return value->value(); |
} |
+ virtual void trace(Visitor*) OVERRIDE; |
+ |
private: |
LegacyStyleInterpolation(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end, CSSPropertyID id) |
: StyleInterpolation(start, end, id) |
- { } |
+ { |
+ } |
}; |
DEFINE_TYPE_CASTS(StyleInterpolation, Interpolation, value, value->isStyleInterpolation(), value.isStyleInterpolation()); |