Index: Source/core/rendering/svg/RenderSVGResourceRadialGradient.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGResourceRadialGradient.cpp b/Source/core/rendering/svg/RenderSVGResourceRadialGradient.cpp |
index fb7405ea81c2757cedf4f55be4073d7aabd6e72a..a35586e9f4d22fb255e40442c76aa83aabd13d76 100644 |
--- a/Source/core/rendering/svg/RenderSVGResourceRadialGradient.cpp |
+++ b/Source/core/rendering/svg/RenderSVGResourceRadialGradient.cpp |
@@ -29,6 +29,9 @@ namespace blink { |
RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient(SVGRadialGradientElement* node) |
: RenderSVGResourceGradient(node) |
+#if ENABLE(OILPAN) |
+ , m_attributesWrapper(RadialGradientAttributesWrapper::create()) |
+#endif |
{ |
} |
@@ -36,16 +39,14 @@ RenderSVGResourceRadialGradient::~RenderSVGResourceRadialGradient() |
{ |
} |
-void RenderSVGResourceRadialGradient::trace(Visitor* visitor) |
-{ |
- visitor->trace(m_attributes); |
- RenderSVGResourceGradient::trace(visitor); |
-} |
- |
bool RenderSVGResourceRadialGradient::collectGradientAttributes(SVGGradientElement* gradientElement) |
{ |
+#if ENABLE(OILPAN) |
+ m_attributesWrapper->set(RadialGradientAttributes()); |
+#else |
m_attributes = RadialGradientAttributes(); |
- return toSVGRadialGradientElement(gradientElement)->collectGradientAttributes(m_attributes); |
+#endif |
+ return toSVGRadialGradientElement(gradientElement)->collectGradientAttributes(mutableAttributes()); |
} |
FloatPoint RenderSVGResourceRadialGradient::centerPoint(const RadialGradientAttributes& attributes) const |
@@ -70,14 +71,15 @@ float RenderSVGResourceRadialGradient::focalRadius(const RadialGradientAttribute |
void RenderSVGResourceRadialGradient::buildGradient(GradientData* gradientData) const |
{ |
- gradientData->gradient = Gradient::create(this->focalPoint(m_attributes), |
- this->focalRadius(m_attributes), |
- this->centerPoint(m_attributes), |
- this->radius(m_attributes)); |
+ const RadialGradientAttributes& attributes = this->attributes(); |
+ gradientData->gradient = Gradient::create(this->focalPoint(attributes), |
+ this->focalRadius(attributes), |
+ this->centerPoint(attributes), |
+ this->radius(attributes)); |
- gradientData->gradient->setSpreadMethod(platformSpreadMethodFromSVGType(m_attributes.spreadMethod())); |
+ gradientData->gradient->setSpreadMethod(platformSpreadMethodFromSVGType(attributes.spreadMethod())); |
- addStops(gradientData, m_attributes.stops()); |
+ addStops(gradientData, attributes.stops()); |
} |
} |