| Index: WebCore/css/SVGCSSStyleSelector.cpp
|
| ===================================================================
|
| --- WebCore/css/SVGCSSStyleSelector.cpp (revision 68662)
|
| +++ WebCore/css/SVGCSSStyleSelector.cpp (working copy)
|
| @@ -48,15 +48,17 @@
|
|
|
| #define HANDLE_INHERIT(prop, Prop) \
|
| if (isInherit) \
|
| -{\
|
| - svgstyle->set##Prop(m_parentStyle->svgStyle()->prop());\
|
| - return;\
|
| +{ \
|
| + svgstyle->set##Prop(m_parentStyle->svgStyle()->prop()); \
|
| + return; \
|
| }
|
|
|
| #define HANDLE_INHERIT_AND_INITIAL(prop, Prop) \
|
| HANDLE_INHERIT(prop, Prop) \
|
| -else if (isInitial) \
|
| - svgstyle->set##Prop(SVGRenderStyle::initial##Prop());
|
| +if (isInitial) { \
|
| + svgstyle->set##Prop(SVGRenderStyle::initial##Prop()); \
|
| + return; \
|
| +}
|
|
|
| namespace WebCore {
|
|
|
| @@ -90,15 +92,13 @@
|
| return -1;
|
| }
|
|
|
| -static Color colorFromSVGColorCSSValue(CSSValue* value, const Color& fgColor)
|
| +static Color colorFromSVGColorCSSValue(SVGColor* svgColor, const Color& fgColor)
|
| {
|
| - ASSERT(value->isSVGColor());
|
| - SVGColor* c = static_cast<SVGColor*>(value);
|
| Color color;
|
| - if (c->colorType() == SVGColor::SVG_COLORTYPE_CURRENTCOLOR)
|
| + if (svgColor->colorType() == SVGColor::SVG_COLORTYPE_CURRENTCOLOR)
|
| color = fgColor;
|
| else
|
| - color = c->color();
|
| + color = svgColor->color();
|
| return color;
|
| }
|
|
|
| @@ -468,13 +468,15 @@
|
| case CSSPropertyStopColor:
|
| {
|
| HANDLE_INHERIT_AND_INITIAL(stopColor, StopColor);
|
| - svgstyle->setStopColor(colorFromSVGColorCSSValue(value, m_style->color()));
|
| + if (value->isSVGColor())
|
| + svgstyle->setStopColor(colorFromSVGColorCSSValue(static_cast<SVGColor*>(value), m_style->color()));
|
| break;
|
| }
|
| case CSSPropertyLightingColor:
|
| {
|
| HANDLE_INHERIT_AND_INITIAL(lightingColor, LightingColor);
|
| - svgstyle->setLightingColor(colorFromSVGColorCSSValue(value, m_style->color()));
|
| + if (value->isSVGColor())
|
| + svgstyle->setLightingColor(colorFromSVGColorCSSValue(static_cast<SVGColor*>(value), m_style->color()));
|
| break;
|
| }
|
| case CSSPropertyFloodOpacity:
|
| @@ -497,11 +499,9 @@
|
| }
|
| case CSSPropertyFloodColor:
|
| {
|
| - if (isInitial) {
|
| - svgstyle->setFloodColor(SVGRenderStyle::initialFloodColor());
|
| - return;
|
| - }
|
| - svgstyle->setFloodColor(colorFromSVGColorCSSValue(value, m_style->color()));
|
| + HANDLE_INHERIT_AND_INITIAL(floodColor, FloodColor);
|
| + if (value->isSVGColor())
|
| + svgstyle->setFloodColor(colorFromSVGColorCSSValue(static_cast<SVGColor*>(value), m_style->color()));
|
| break;
|
| }
|
| case CSSPropertyGlyphOrientationHorizontal:
|
|
|