| Index: Source/core/svg/SVGSVGElement.cpp
|
| diff --git a/Source/core/svg/SVGSVGElement.cpp b/Source/core/svg/SVGSVGElement.cpp
|
| index 1dc42fc9727fd325982177edd68ffc93bc3b022b..2a562a23011accea1e0659f05d18add2d4ba223f 100644
|
| --- a/Source/core/svg/SVGSVGElement.cpp
|
| +++ b/Source/core/svg/SVGSVGElement.cpp
|
| @@ -51,6 +51,7 @@
|
| #include "core/svg/SVGRectTearOff.h"
|
| #include "core/svg/SVGTransform.h"
|
| #include "core/svg/SVGTransformList.h"
|
| +#include "core/svg/SVGTransformTearOff.h"
|
| #include "core/svg/SVGViewElement.h"
|
| #include "core/svg/SVGViewSpec.h"
|
| #include "core/svg/animation/SMILTimeContainer.h"
|
| @@ -427,9 +428,9 @@ PassRefPtr<SVGPointTearOff> SVGSVGElement::createSVGPoint()
|
| return SVGPointTearOff::create(SVGPoint::create(), 0, PropertyIsNotAnimVal);
|
| }
|
|
|
| -SVGMatrix SVGSVGElement::createSVGMatrix()
|
| +PassRefPtr<SVGMatrixTearOff> SVGSVGElement::createSVGMatrix()
|
| {
|
| - return SVGMatrix();
|
| + return SVGMatrixTearOff::create(AffineTransform());
|
| }
|
|
|
| PassRefPtr<SVGRectTearOff> SVGSVGElement::createSVGRect()
|
| @@ -437,14 +438,18 @@ PassRefPtr<SVGRectTearOff> SVGSVGElement::createSVGRect()
|
| return SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
|
| }
|
|
|
| -SVGTransform SVGSVGElement::createSVGTransform()
|
| +PassRefPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransform()
|
| {
|
| - return SVGTransform(SVGTransform::SVG_TRANSFORM_MATRIX);
|
| + return SVGTransformTearOff::create(SVGTransform::create(SVG_TRANSFORM_MATRIX), 0, PropertyIsNotAnimVal);
|
| }
|
|
|
| -SVGTransform SVGSVGElement::createSVGTransformFromMatrix(const SVGMatrix& matrix)
|
| +PassRefPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransformFromMatrix(PassRefPtr<SVGMatrixTearOff> matrix)
|
| {
|
| - return SVGTransform(static_cast<const AffineTransform&>(matrix));
|
| + // FIXME: remove after nbarth@'s [StrictTypeChecking] patch
|
| + if (!matrix)
|
| + return 0;
|
| +
|
| + return SVGTransformTearOff::create(SVGTransform::create(matrix->value()), 0, PropertyIsNotAnimVal);
|
| }
|
|
|
| AffineTransform SVGSVGElement::localCoordinateSpaceTransform(SVGElement::CTMScope mode) const
|
| @@ -703,12 +708,12 @@ AffineTransform SVGSVGElement::viewBoxToViewTransform(float viewWidth, float vie
|
| return SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), m_preserveAspectRatio->currentValue(), viewWidth, viewHeight);
|
|
|
| AffineTransform ctm = SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), m_viewSpec->preserveAspectRatio()->currentValue(), viewWidth, viewHeight);
|
| - const SVGTransformList& transformList = m_viewSpec->transformBaseValue();
|
| - if (transformList.isEmpty())
|
| + RefPtr<SVGTransformList> transformList = m_viewSpec->transform();
|
| + if (transformList->isEmpty())
|
| return ctm;
|
|
|
| AffineTransform transform;
|
| - if (transformList.concatenate(transform))
|
| + if (transformList->concatenate(transform))
|
| ctm *= transform;
|
|
|
| return ctm;
|
|
|