Index: Source/core/animation/AnimatableStrokeDasharrayList.cpp |
diff --git a/Source/core/animation/AnimatableStrokeDasharrayList.cpp b/Source/core/animation/AnimatableStrokeDasharrayList.cpp |
index 0c219e381fc34c7a9148304f579b212645d6a9a3..5d4ff29d43c4195bce4f7f57fa61141c459906b6 100644 |
--- a/Source/core/animation/AnimatableStrokeDasharrayList.cpp |
+++ b/Source/core/animation/AnimatableStrokeDasharrayList.cpp |
@@ -62,10 +62,10 @@ bool AnimatableStrokeDasharrayList::usesDefaultInterpolationWith(const Animatabl |
return false; |
} |
-PassRefPtr<AnimatableValue> AnimatableStrokeDasharrayList::interpolateTo(const AnimatableValue* value, double fraction) const |
+PassRefPtrWillBeRawPtr<AnimatableValue> AnimatableStrokeDasharrayList::interpolateTo(const AnimatableValue* value, double fraction) const |
{ |
- Vector<RefPtr<AnimatableValue> > from = m_values; |
- Vector<RefPtr<AnimatableValue> > to = toAnimatableStrokeDasharrayList(value)->m_values; |
+ WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> > from = m_values; |
+ WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> > to = toAnimatableStrokeDasharrayList(value)->m_values; |
// The spec states that if the sum of all values is zero, this should be |
// treated like a value of 'none', which means that a solid line is drawn. |
@@ -75,7 +75,11 @@ PassRefPtr<AnimatableValue> AnimatableStrokeDasharrayList::interpolateTo(const A |
if (from.isEmpty() && to.isEmpty()) |
return takeConstRef(this); |
if (from.isEmpty() || to.isEmpty()) { |
+#if ENABLE_OILPAN |
+ DEFINE_STATIC_LOCAL(Persistent<AnimatableSVGLength>, zeroPixels, (AnimatableSVGLength::create(SVGLength::create()))); |
+#else |
DEFINE_STATIC_REF(AnimatableSVGLength, zeroPixels, AnimatableSVGLength::create(SVGLength::create()).leakRef()); |
+#endif |
if (from.isEmpty()) { |
from.append(zeroPixels); |
from.append(zeroPixels); |
@@ -86,10 +90,15 @@ PassRefPtr<AnimatableValue> AnimatableStrokeDasharrayList::interpolateTo(const A |
} |
} |
- Vector<RefPtr<AnimatableValue> > interpolatedValues; |
+ WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> > interpolatedValues; |
bool success = interpolateLists(from, to, fraction, interpolatedValues); |
ASSERT_UNUSED(success, success); |
- return adoptRef(new AnimatableStrokeDasharrayList(interpolatedValues)); |
+ return adoptRefWillBeNoop(new AnimatableStrokeDasharrayList(interpolatedValues)); |
+} |
+ |
+void AnimatableStrokeDasharrayList::trace(Visitor* visitor) |
+{ |
+ AnimatableRepeatable::trace(visitor); |
} |
} // namespace WebCore |