Index: Source/core/svg/SVGAnimatedType.cpp |
diff --git a/Source/core/svg/SVGAnimatedType.cpp b/Source/core/svg/SVGAnimatedType.cpp |
index eb6b456bdf4a24896ca5f8a7a190653485262c45..a9b45da7294bae29ac857b0c0106f7ae38c3b648 100644 |
--- a/Source/core/svg/SVGAnimatedType.cpp |
+++ b/Source/core/svg/SVGAnimatedType.cpp |
@@ -52,12 +52,6 @@ SVGAnimatedType::~SVGAnimatedType() |
case AnimatedIntegerOptionalInteger: |
delete m_data.integerOptionalInteger; |
break; |
- case AnimatedLength: |
- delete m_data.length; |
- break; |
- case AnimatedLengthList: |
- delete m_data.lengthList; |
- break; |
case AnimatedNumber: |
delete m_data.number; |
break; |
@@ -85,6 +79,9 @@ SVGAnimatedType::~SVGAnimatedType() |
case AnimatedTransformList: |
delete m_data.transformList; |
break; |
+ // Below properties have migrated to new property implementation. |
+ case AnimatedLength: |
+ case AnimatedLengthList: |
case AnimatedNewProperty: |
// handled by RefPtr |
break; |
@@ -142,22 +139,6 @@ PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createIntegerOptionalInteger(pair<i |
return animatedType.release(); |
} |
-PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createLength(SVGLength* length) |
-{ |
- ASSERT(length); |
- OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedLength)); |
- animatedType->m_data.length = length; |
- return animatedType.release(); |
-} |
- |
-PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createLengthList(SVGLengthList* lengthList) |
-{ |
- ASSERT(lengthList); |
- OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedLengthList)); |
- animatedType->m_data.lengthList = lengthList; |
- return animatedType.release(); |
-} |
- |
PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createNumber(float* number) |
{ |
ASSERT(number); |
@@ -230,10 +211,10 @@ PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createTransformList(SVGTransformLis |
return animatedType.release(); |
} |
-PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createNewProperty(PassRefPtr<NewSVGPropertyBase> newProperty) |
+PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createNewProperty(PassRefPtr<NewSVGPropertyBase> newProperty, AnimatedPropertyType propertyType) |
{ |
ASSERT(newProperty); |
- OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedNewProperty)); |
+ OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(propertyType)); |
animatedType->m_newProperty = newProperty; |
return animatedType.release(); |
} |
@@ -244,12 +225,6 @@ String SVGAnimatedType::valueAsString() |
case AnimatedColor: |
ASSERT(m_data.color); |
return m_data.color->serialized(); |
- case AnimatedLength: |
- ASSERT(m_data.length); |
- return m_data.length->valueAsString(); |
- case AnimatedLengthList: |
- ASSERT(m_data.lengthList); |
- return m_data.lengthList->valueAsString(); |
case AnimatedNumber: |
ASSERT(m_data.number); |
return String::number(*m_data.number); |
@@ -260,6 +235,9 @@ String SVGAnimatedType::valueAsString() |
case AnimatedString: |
ASSERT(m_data.string); |
return *m_data.string; |
+ // Below properties have migrated to new property implementation. |
+ case AnimatedLength: |
+ case AnimatedLengthList: |
case AnimatedNewProperty: |
return m_newProperty->valueAsString(); |
@@ -291,16 +269,6 @@ bool SVGAnimatedType::setValueAsString(const QualifiedName& attrName, const Stri |
ASSERT(m_data.color); |
*m_data.color = value.isEmpty() ? Color() : SVGColor::colorFromRGBColorString(value); |
break; |
- case AnimatedLength: { |
- ASSERT(m_data.length); |
- TrackExceptionState exceptionState; |
- m_data.length->setValueAsString(value, SVGLength::lengthModeForAnimatedLengthAttribute(attrName), exceptionState); |
- return !exceptionState.hadException(); |
- } |
- case AnimatedLengthList: |
- ASSERT(m_data.lengthList); |
- m_data.lengthList->parse(value, SVGLength::lengthModeForAnimatedLengthAttribute(attrName)); |
- break; |
case AnimatedNumber: |
ASSERT(m_data.number); |
parseNumberFromString(value, *m_data.number); |
@@ -313,6 +281,9 @@ bool SVGAnimatedType::setValueAsString(const QualifiedName& attrName, const Stri |
ASSERT(m_data.string); |
*m_data.string = value; |
break; |
+ // Below properties have migrated to new property implementation. |
+ case AnimatedLength: |
+ case AnimatedLengthList: |
case AnimatedNewProperty: |
// always use createForAnimation call path for NewSVGProperty implementations. |
return false; |