Diff
Modified: trunk/Source/WebCore/ChangeLog (158196 => 158197)
--- trunk/Source/WebCore/ChangeLog 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/ChangeLog 2013-10-29 17:17:22 UTC (rev 158197)
@@ -1,3 +1,34 @@
+2013-10-29 Andreas Kling <[email protected]>
+
+ SVG: applyStrokeStyleToContext should take a RenderElement&.
+ <https://webkit.org/b/123447>
+
+ ..and a RenderStyle& too, for that matter.
+
+ Reviewed by Anders Carlsson.
+
+ * rendering/svg/SVGRenderSupport.h:
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
+
+ Have this take a RenderElement& and RenderStyle& instead of
+ raw pointers. Tweaked a silly-looking loop.
+
+ * rendering/svg/RenderSVGShape.h:
+ * rendering/svg/RenderSVGShape.cpp:
+
+ Moved BoundingRectStrokeStyleApplier helper class into the
+ cpp file since it wasn't being used anywhere else.
+
+ * rendering/svg/RenderSVGResourceGradient.cpp:
+ (WebCore::RenderSVGResourceGradient::applyResource):
+ * rendering/svg/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::applyResource):
+ * rendering/svg/RenderSVGResourceSolidColor.cpp:
+ (WebCore::RenderSVGResourceSolidColor::applyResource):
+
+ Remove ampersands.
+
2013-10-29 Antti Koivisto <[email protected]>
Multiple runs per line on simple line path
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp 2013-10-29 17:17:22 UTC (rev 158197)
@@ -198,7 +198,7 @@
gradientData->gradient->setGradientSpaceTransform(transformOnNonScalingStroke(&renderer, gradientData->userspaceTransform));
context->setAlpha(svgStyle->strokeOpacity());
context->setStrokeGradient(gradientData->gradient);
- SVGRenderSupport::applyStrokeStyleToContext(context, &style, &renderer);
+ SVGRenderSupport::applyStrokeStyleToContext(context, style, renderer);
}
return true;
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp 2013-10-29 17:17:22 UTC (rev 158197)
@@ -167,7 +167,7 @@
patternData->pattern->setPatternSpaceTransform(transformOnNonScalingStroke(&renderer, patternData->transform));
context->setAlpha(svgStyle->strokeOpacity());
context->setStrokePattern(patternData->pattern);
- SVGRenderSupport::applyStrokeStyleToContext(context, &style, &renderer);
+ SVGRenderSupport::applyStrokeStyleToContext(context, style, renderer);
}
if (resourceMode & ApplyToTextMode) {
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp 2013-10-29 17:17:22 UTC (rev 158197)
@@ -69,7 +69,7 @@
context->setAlpha(svgStyle ? svgStyle->strokeOpacity() : 1);
context->setStrokeColor(m_color, colorSpace);
- SVGRenderSupport::applyStrokeStyleToContext(context, &style, &renderer);
+ SVGRenderSupport::applyStrokeStyleToContext(context, style, renderer);
if (resourceMode & ApplyToTextMode)
context->setTextDrawingMode(TextModeStroke);
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp 2013-10-29 17:17:22 UTC (rev 158197)
@@ -52,6 +52,22 @@
namespace WebCore {
+class BoundingRectStrokeStyleApplier FINAL : public StrokeStyleApplier {
+public:
+ BoundingRectStrokeStyleApplier(const RenderSVGShape& renderer)
+ : m_renderer(renderer)
+ {
+ }
+
+ virtual void strokeStyle(GraphicsContext* context) OVERRIDE
+ {
+ SVGRenderSupport::applyStrokeStyleToContext(context, m_renderer.style(), m_renderer);
+ }
+
+private:
+ const RenderSVGShape& m_renderer;
+};
+
RenderSVGShape::RenderSVGShape(SVGGraphicsElement& element, PassRef<RenderStyle> style)
: RenderSVGModelObject(element, std::move(style))
, m_needsBoundariesUpdate(false) // Default is false, the cached rects are empty from the beginning.
@@ -101,7 +117,7 @@
bool RenderSVGShape::shapeDependentStrokeContains(const FloatPoint& point)
{
ASSERT(m_path);
- BoundingRectStrokeStyleApplier applier(this, &style());
+ BoundingRectStrokeStyleApplier applier(*this);
if (hasNonScalingStroke()) {
AffineTransform nonScalingTransform = nonScalingStrokeTransform();
@@ -382,7 +398,7 @@
const SVGRenderStyle* svgStyle = style().svgStyle();
if (svgStyle->hasStroke()) {
- BoundingRectStrokeStyleApplier strokeStyle(this, &style());
+ BoundingRectStrokeStyleApplier strokeStyle(*this);
if (hasNonScalingStroke()) {
AffineTransform nonScalingTransform = nonScalingStrokeTransform();
if (nonScalingTransform.isInvertible()) {
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGShape.h (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/RenderSVGShape.h 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGShape.h 2013-10-29 17:17:22 UTC (rev 158197)
@@ -32,7 +32,6 @@
#include "RenderSVGModelObject.h"
#include "SVGGraphicsElement.h"
#include "SVGMarkerData.h"
-#include "StrokeStyleApplier.h"
#include <wtf/OwnPtr.h>
#include <wtf/Vector.h>
@@ -45,26 +44,6 @@
class RenderSVGResource;
class SVGGraphicsElement;
-class BoundingRectStrokeStyleApplier : public StrokeStyleApplier {
-public:
- BoundingRectStrokeStyleApplier(const RenderObject* object, RenderStyle* style)
- : m_object(object)
- , m_style(style)
- {
- ASSERT(style);
- ASSERT(object);
- }
-
- virtual void strokeStyle(GraphicsContext* context) OVERRIDE
- {
- SVGRenderSupport::applyStrokeStyleToContext(context, m_style, m_object);
- }
-
-private:
- const RenderObject* m_object;
- RenderStyle* m_style;
-};
-
class RenderSVGShape : public RenderSVGModelObject {
public:
RenderSVGShape(SVGGraphicsElement&, PassRef<RenderStyle>);
Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp 2013-10-29 17:17:22 UTC (rev 158197)
@@ -417,18 +417,16 @@
return true;
}
-void SVGRenderSupport::applyStrokeStyleToContext(GraphicsContext* context, const RenderStyle* style, const RenderObject* object)
+void SVGRenderSupport::applyStrokeStyleToContext(GraphicsContext* context, const RenderStyle& style, const RenderElement& renderer)
{
ASSERT(context);
- ASSERT(style);
- ASSERT(object);
- ASSERT(object->node());
- ASSERT(object->node()->isSVGElement());
+ ASSERT(renderer.element());
+ ASSERT(renderer.element()->isSVGElement());
- const SVGRenderStyle* svgStyle = style->svgStyle();
+ const SVGRenderStyle* svgStyle = style.svgStyle();
ASSERT(svgStyle);
- SVGLengthContext lengthContext(toSVGElement(object->node()));
+ SVGLengthContext lengthContext(toSVGElement(renderer.element()));
context->setStrokeThickness(svgStyle->strokeWidth().value(lengthContext));
context->setLineCap(svgStyle->capStyle());
context->setLineJoin(svgStyle->joinStyle());
@@ -440,9 +438,9 @@
context->setStrokeStyle(SolidStroke);
else {
DashArray dashArray;
- const Vector<SVGLength>::const_iterator end = dashes.end();
- for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it)
- dashArray.append((*it).value(lengthContext));
+ dashArray.reserveInitialCapacity(dashes.size());
+ for (unsigned i = 0, size = dashes.size(); i < size; ++i)
+ dashArray.uncheckedAppend(dashes[i].value(lengthContext));
context->setLineDash(dashArray, svgStyle->strokeDashOffset().value(lengthContext));
}
Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h (158196 => 158197)
--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h 2013-10-29 17:00:42 UTC (rev 158196)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h 2013-10-29 17:17:22 UTC (rev 158197)
@@ -74,7 +74,7 @@
static bool checkForSVGRepaintDuringLayout(RenderObject*);
// Shared between SVG renderers and resources.
- static void applyStrokeStyleToContext(GraphicsContext*, const RenderStyle*, const RenderObject*);
+ static void applyStrokeStyleToContext(GraphicsContext*, const RenderStyle&, const RenderElement&);
// Determines if any ancestor's transform has changed.
static bool transformToRootChanged(RenderObject*);