| Index: Source/core/rendering/style/BasicShapes.cpp
|
| diff --git a/Source/core/rendering/style/BasicShapes.cpp b/Source/core/rendering/style/BasicShapes.cpp
|
| index a41a1d6393c4da9196bea5aebd5eb97055d0a67c..5b2addcc1579ed4837e4761d4683449a0301d4f6 100644
|
| --- a/Source/core/rendering/style/BasicShapes.cpp
|
| +++ b/Source/core/rendering/style/BasicShapes.cpp
|
| @@ -60,15 +60,13 @@ bool BasicShape::canBlend(const BasicShape* other) const
|
|
|
| // Just polygons with same number of vertices can be animated.
|
| if (type() == BasicShape::BasicShapePolygonType
|
| - && (static_cast<const BasicShapePolygon*>(this)->values().size() != static_cast<const BasicShapePolygon*>(other)->values().size()
|
| - || static_cast<const BasicShapePolygon*>(this)->windRule() != static_cast<const BasicShapePolygon*>(other)->windRule()))
|
| + && (toBasicShapePolygon(this)->values().size() != toBasicShapePolygon(other)->values().size()
|
| + || toBasicShapePolygon(this)->windRule() != toBasicShapePolygon(other)->windRule()))
|
| return false;
|
|
|
| // Circles with keywords for radii or center coordinates cannot be animated.
|
| if (type() == BasicShape::BasicShapeCircleType) {
|
| - const BasicShapeCircle* thisCircle = static_cast<const BasicShapeCircle*>(this);
|
| - const BasicShapeCircle* otherCircle = static_cast<const BasicShapeCircle*>(other);
|
| - if (!thisCircle->radius().canBlend(otherCircle->radius()))
|
| + if (!toBasicShapeCircle(this)->radius().canBlend(toBasicShapeCircle(other)->radius()))
|
| return false;
|
| }
|
|
|
| @@ -76,10 +74,8 @@ bool BasicShape::canBlend(const BasicShape* other) const
|
| if (type() != BasicShape::BasicShapeEllipseType)
|
| return true;
|
|
|
| - const BasicShapeEllipse* thisEllipse = static_cast<const BasicShapeEllipse*>(this);
|
| - const BasicShapeEllipse* otherEllipse = static_cast<const BasicShapeEllipse*>(other);
|
| - return (thisEllipse->radiusX().canBlend(otherEllipse->radiusX())
|
| - && thisEllipse->radiusY().canBlend(otherEllipse->radiusY()));
|
| + return (toBasicShapeEllipse(this)->radiusX().canBlend(toBasicShapeEllipse(other)->radiusX())
|
| + && toBasicShapeEllipse(this)->radiusY().canBlend(toBasicShapeEllipse(other)->radiusY()));
|
| }
|
|
|
| bool BasicShapeCircle::operator==(const BasicShape& o) const
|
| @@ -120,7 +116,7 @@ void BasicShapeCircle::path(Path& path, const FloatRect& boundingBox)
|
| PassRefPtr<BasicShape> BasicShapeCircle::blend(const BasicShape* other, double progress) const
|
| {
|
| ASSERT(type() == other->type());
|
| - const BasicShapeCircle* o = static_cast<const BasicShapeCircle*>(other);
|
| + const BasicShapeCircle* o = toBasicShapeCircle(other);
|
| RefPtr<BasicShapeCircle> result = BasicShapeCircle::create();
|
|
|
| result->setCenterX(m_centerX.blend(o->centerX(), progress));
|
| @@ -166,7 +162,7 @@ void BasicShapeEllipse::path(Path& path, const FloatRect& boundingBox)
|
| PassRefPtr<BasicShape> BasicShapeEllipse::blend(const BasicShape* other, double progress) const
|
| {
|
| ASSERT(type() == other->type());
|
| - const BasicShapeEllipse* o = static_cast<const BasicShapeEllipse*>(other);
|
| + const BasicShapeEllipse* o = toBasicShapeEllipse(other);
|
| RefPtr<BasicShapeEllipse> result = BasicShapeEllipse::create();
|
|
|
| if (m_radiusX.type() != BasicShapeRadius::Value || o->radiusX().type() != BasicShapeRadius::Value
|
| @@ -207,7 +203,7 @@ PassRefPtr<BasicShape> BasicShapePolygon::blend(const BasicShape* other, double
|
| {
|
| ASSERT(other && isSameType(*other));
|
|
|
| - const BasicShapePolygon* o = static_cast<const BasicShapePolygon*>(other);
|
| + const BasicShapePolygon* o = toBasicShapePolygon(other);
|
| ASSERT(m_values.size() == o->values().size());
|
| ASSERT(!(m_values.size() % 2));
|
|
|
|
|