diff options
Diffstat (limited to 'WebCore/svg/SVGElement.cpp')
-rw-r--r-- | WebCore/svg/SVGElement.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/WebCore/svg/SVGElement.cpp b/WebCore/svg/SVGElement.cpp index 055efcc..37e4930 100644 --- a/WebCore/svg/SVGElement.cpp +++ b/WebCore/svg/SVGElement.cpp @@ -312,7 +312,10 @@ void SVGElement::attributeChanged(Attribute* attr, bool preserveDecls) if (isSynchronizingSVGAttributes()) return; - svgAttributeChanged(attr->name()); + // Changes to the style attribute are processed lazily (see Element::getAttribute() and related methods), + // so we don't want changes to the style attribute to result in extra work here. + if (attr->name() != HTMLNames::styleAttr) + svgAttributeChanged(attr->name()); } void SVGElement::updateAnimatedSVGAttribute(const QualifiedName& name) const @@ -331,10 +334,8 @@ void SVGElement::updateAnimatedSVGAttribute(const QualifiedName& name) const ContainerNode* SVGElement::eventParentNode() { - if (Node* shadowParent = shadowParentNode()) { - ASSERT(shadowParent->isContainerNode()); - return static_cast<ContainerNode*>(shadowParent); - } + if (ContainerNode* shadowParent = shadowParentNode()) + return shadowParent; return StyledElement::eventParentNode(); } |