Title: [158197] trunk/Source/WebCore
Revision
158197
Author
[email protected]
Date
2013-10-29 10:17:22 -0700 (Tue, 29 Oct 2013)

Log Message

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.

Modified Paths

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*);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to