| Index: third_party/WebKit/Source/core/layout/svg/SVGTextQuery.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/svg/SVGTextQuery.cpp b/third_party/WebKit/Source/core/layout/svg/SVGTextQuery.cpp
|
| index 6becb2f105e6a0ce21247605e55bccf948639723..a8c5edc3fcfe672b3e7e3621eedce3f390e64800 100644
|
| --- a/third_party/WebKit/Source/core/layout/svg/SVGTextQuery.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/svg/SVGTextQuery.cpp
|
| @@ -332,8 +332,7 @@ static FloatPoint calculateGlyphPosition(const QueryData* queryData, const SVGTe
|
| {
|
| FloatPoint glyphPosition = calculateGlyphPositionWithoutTransform(queryData, fragment, offsetInFragment);
|
| if (fragment.isTransformed()) {
|
| - AffineTransform fragmentTransform;
|
| - fragment.buildFragmentTransform(fragmentTransform, SVGTextFragment::TransformIgnoringTextLength);
|
| + AffineTransform fragmentTransform = fragment.buildFragmentTransform(SVGTextFragment::TransformIgnoringTextLength);
|
| glyphPosition = fragmentTransform.mapPoint(glyphPosition);
|
| }
|
| return glyphPosition;
|
| @@ -417,12 +416,10 @@ static bool rotationOfCharacterCallback(QueryData* queryData, const SVGTextFragm
|
| if (!fragment.isTransformed()) {
|
| data->rotation = 0;
|
| } else {
|
| - AffineTransform fragmentTransform;
|
| - fragment.buildFragmentTransform(fragmentTransform, SVGTextFragment::TransformIgnoringTextLength);
|
| + AffineTransform fragmentTransform = fragment.buildFragmentTransform(SVGTextFragment::TransformIgnoringTextLength);
|
| fragmentTransform.scale(1 / fragmentTransform.xScale(), 1 / fragmentTransform.yScale());
|
| data->rotation = narrowPrecisionToFloat(rad2deg(atan2(fragmentTransform.b(), fragmentTransform.a())));
|
| }
|
| -
|
| return true;
|
| }
|
|
|
| @@ -488,8 +485,7 @@ static inline void calculateGlyphBoundaries(const QueryData* queryData, const SV
|
| }
|
|
|
| if (fragment.isTransformed()) {
|
| - AffineTransform fragmentTransform;
|
| - fragment.buildFragmentTransform(fragmentTransform, SVGTextFragment::TransformIgnoringTextLength);
|
| + AffineTransform fragmentTransform = fragment.buildFragmentTransform(SVGTextFragment::TransformIgnoringTextLength);
|
| extent = fragmentTransform.mapRect(extent);
|
| }
|
| }
|
| @@ -499,11 +495,7 @@ static inline FloatRect calculateFragmentBoundaries(LineLayoutSVGInlineText text
|
| float scalingFactor = textLineLayout.scalingFactor();
|
| ASSERT(scalingFactor);
|
| float baseline = textLineLayout.scaledFont().fontMetrics().floatAscent() / scalingFactor;
|
| -
|
| - AffineTransform fragmentTransform;
|
| - FloatRect fragmentRect(fragment.x, fragment.y - baseline, fragment.width, fragment.height);
|
| - fragment.buildFragmentTransform(fragmentTransform);
|
| - return fragmentTransform.mapRect(fragmentRect);
|
| + return fragment.boundingBox(baseline);
|
| }
|
|
|
| static bool extentOfCharacterCallback(QueryData* queryData, const SVGTextFragment& fragment)
|
|
|