| Index: Source/core/svg/properties/SVGProperty.h
|
| diff --git a/Source/core/svg/properties/SVGProperty.h b/Source/core/svg/properties/SVGProperty.h
|
| index 6a4236f5f7eeef6405f1c8c7d7fc7467e8e6b9e2..e918f53ca1c6a118417071fef988d6324eb7aebb 100644
|
| --- a/Source/core/svg/properties/SVGProperty.h
|
| +++ b/Source/core/svg/properties/SVGProperty.h
|
| @@ -43,7 +43,7 @@ namespace blink {
|
| class SVGElement;
|
| class SVGAnimationElement;
|
|
|
| -class SVGPropertyBase : public RefCounted<SVGPropertyBase> {
|
| +class SVGPropertyBase : public RefCountedWillBeGarbageCollectedFinalized<SVGPropertyBase> {
|
| WTF_MAKE_NONCOPYABLE(SVGPropertyBase);
|
|
|
| public:
|
| @@ -52,19 +52,23 @@ public:
|
|
|
| virtual ~SVGPropertyBase()
|
| {
|
| +#if !ENABLE(OILPAN)
|
| + // Oilpan: a property can legitimately be swept out along with its list,
|
| + // hence this cannot be made to hold.
|
| ASSERT(!m_ownerList);
|
| +#endif
|
| }
|
|
|
| // FIXME: remove this in WebAnimations transition.
|
| // This is used from SVGAnimatedNewPropertyAnimator for its animate-by-string implementation.
|
| - virtual PassRefPtr<SVGPropertyBase> cloneForAnimation(const String&) const = 0;
|
| + virtual PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const = 0;
|
|
|
| virtual String valueAsString() const = 0;
|
|
|
| // FIXME: remove below and just have this inherit AnimatableValue in WebAnimations transition.
|
| virtual void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) = 0;
|
| - virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtr<SVGPropertyBase> from, PassRefPtr<SVGPropertyBase> to, PassRefPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) = 0;
|
| - virtual float calculateDistance(PassRefPtr<SVGPropertyBase> to, SVGElement*) = 0;
|
| + virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) = 0;
|
| + virtual float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) = 0;
|
|
|
| AnimatedPropertyType type()
|
| {
|
| @@ -84,6 +88,11 @@ public:
|
| m_ownerList = ownerList;
|
| }
|
|
|
| + virtual void trace(Visitor* visitor)
|
| + {
|
| + visitor->trace(m_ownerList);
|
| + }
|
| +
|
| protected:
|
| explicit SVGPropertyBase(AnimatedPropertyType type)
|
| : m_type(type)
|
| @@ -94,7 +103,7 @@ protected:
|
| private:
|
| const AnimatedPropertyType m_type;
|
|
|
| - SVGPropertyBase* m_ownerList;
|
| + RawPtrWillBeMember<SVGPropertyBase> m_ownerList;
|
| };
|
|
|
| }
|
|
|