| Index: third_party/WebKit/Source/core/svg/SVGElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/svg/SVGElement.cpp b/third_party/WebKit/Source/core/svg/SVGElement.cpp
|
| index 28f432cf033ac6bb146abe053c886419c1e9224c..9f3bfab09d1e1ce0d3f74bf11fb872f7bb6b978b 100644
|
| --- a/third_party/WebKit/Source/core/svg/SVGElement.cpp
|
| +++ b/third_party/WebKit/Source/core/svg/SVGElement.cpp
|
| @@ -999,105 +999,99 @@ bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const
|
| {
|
| // This static is atomically initialized to dodge a warning about
|
| // a race when dumping debug data for a layer.
|
| - DEFINE_THREAD_SAFE_STATIC_LOCAL(HashSet<QualifiedName>, animatableAttributes, new HashSet<QualifiedName>());
|
| -
|
| - if (animatableAttributes.isEmpty()) {
|
| - const QualifiedName* const animatableAttrs[] = {
|
| - &SVGNames::amplitudeAttr,
|
| - &SVGNames::azimuthAttr,
|
| - &SVGNames::baseFrequencyAttr,
|
| - &SVGNames::biasAttr,
|
| - &SVGNames::clipPathUnitsAttr,
|
| - &SVGNames::cxAttr,
|
| - &SVGNames::cyAttr,
|
| - &SVGNames::diffuseConstantAttr,
|
| - &SVGNames::divisorAttr,
|
| - &SVGNames::dxAttr,
|
| - &SVGNames::dyAttr,
|
| - &SVGNames::edgeModeAttr,
|
| - &SVGNames::elevationAttr,
|
| - &SVGNames::exponentAttr,
|
| - &SVGNames::filterUnitsAttr,
|
| - &SVGNames::fxAttr,
|
| - &SVGNames::fyAttr,
|
| - &SVGNames::gradientTransformAttr,
|
| - &SVGNames::gradientUnitsAttr,
|
| - &SVGNames::heightAttr,
|
| - &SVGNames::hrefAttr,
|
| - &SVGNames::in2Attr,
|
| - &SVGNames::inAttr,
|
| - &SVGNames::interceptAttr,
|
| - &SVGNames::k1Attr,
|
| - &SVGNames::k2Attr,
|
| - &SVGNames::k3Attr,
|
| - &SVGNames::k4Attr,
|
| - &SVGNames::kernelMatrixAttr,
|
| - &SVGNames::kernelUnitLengthAttr,
|
| - &SVGNames::lengthAdjustAttr,
|
| - &SVGNames::limitingConeAngleAttr,
|
| - &SVGNames::markerHeightAttr,
|
| - &SVGNames::markerUnitsAttr,
|
| - &SVGNames::markerWidthAttr,
|
| - &SVGNames::maskContentUnitsAttr,
|
| - &SVGNames::maskUnitsAttr,
|
| - &SVGNames::methodAttr,
|
| - &SVGNames::modeAttr,
|
| - &SVGNames::numOctavesAttr,
|
| - &SVGNames::offsetAttr,
|
| - &SVGNames::operatorAttr,
|
| - &SVGNames::orderAttr,
|
| - &SVGNames::orientAttr,
|
| - &SVGNames::pathLengthAttr,
|
| - &SVGNames::patternContentUnitsAttr,
|
| - &SVGNames::patternTransformAttr,
|
| - &SVGNames::patternUnitsAttr,
|
| - &SVGNames::pointsAtXAttr,
|
| - &SVGNames::pointsAtYAttr,
|
| - &SVGNames::pointsAtZAttr,
|
| - &SVGNames::preserveAlphaAttr,
|
| - &SVGNames::preserveAspectRatioAttr,
|
| - &SVGNames::primitiveUnitsAttr,
|
| - &SVGNames::radiusAttr,
|
| - &SVGNames::rAttr,
|
| - &SVGNames::refXAttr,
|
| - &SVGNames::refYAttr,
|
| - &SVGNames::resultAttr,
|
| - &SVGNames::rotateAttr,
|
| - &SVGNames::rxAttr,
|
| - &SVGNames::ryAttr,
|
| - &SVGNames::scaleAttr,
|
| - &SVGNames::seedAttr,
|
| - &SVGNames::slopeAttr,
|
| - &SVGNames::spacingAttr,
|
| - &SVGNames::specularConstantAttr,
|
| - &SVGNames::specularExponentAttr,
|
| - &SVGNames::spreadMethodAttr,
|
| - &SVGNames::startOffsetAttr,
|
| - &SVGNames::stdDeviationAttr,
|
| - &SVGNames::stitchTilesAttr,
|
| - &SVGNames::surfaceScaleAttr,
|
| - &SVGNames::tableValuesAttr,
|
| - &SVGNames::targetAttr,
|
| - &SVGNames::targetXAttr,
|
| - &SVGNames::targetYAttr,
|
| - &SVGNames::transformAttr,
|
| - &SVGNames::typeAttr,
|
| - &SVGNames::valuesAttr,
|
| - &SVGNames::viewBoxAttr,
|
| - &SVGNames::widthAttr,
|
| - &SVGNames::x1Attr,
|
| - &SVGNames::x2Attr,
|
| - &SVGNames::xAttr,
|
| - &SVGNames::xChannelSelectorAttr,
|
| - &SVGNames::y1Attr,
|
| - &SVGNames::y2Attr,
|
| - &SVGNames::yAttr,
|
| - &SVGNames::yChannelSelectorAttr,
|
| - &SVGNames::zAttr,
|
| - };
|
| - for (size_t i = 0; i < WTF_ARRAY_LENGTH(animatableAttrs); i++)
|
| - animatableAttributes.add(*animatableAttrs[i]);
|
| - }
|
| + DEFINE_THREAD_SAFE_STATIC_LOCAL(HashSet<QualifiedName>, animatableAttributes, new HashSet<QualifiedName>({
|
| + SVGNames::amplitudeAttr,
|
| + SVGNames::azimuthAttr,
|
| + SVGNames::baseFrequencyAttr,
|
| + SVGNames::biasAttr,
|
| + SVGNames::clipPathUnitsAttr,
|
| + SVGNames::cxAttr,
|
| + SVGNames::cyAttr,
|
| + SVGNames::diffuseConstantAttr,
|
| + SVGNames::divisorAttr,
|
| + SVGNames::dxAttr,
|
| + SVGNames::dyAttr,
|
| + SVGNames::edgeModeAttr,
|
| + SVGNames::elevationAttr,
|
| + SVGNames::exponentAttr,
|
| + SVGNames::filterUnitsAttr,
|
| + SVGNames::fxAttr,
|
| + SVGNames::fyAttr,
|
| + SVGNames::gradientTransformAttr,
|
| + SVGNames::gradientUnitsAttr,
|
| + SVGNames::heightAttr,
|
| + SVGNames::hrefAttr,
|
| + SVGNames::in2Attr,
|
| + SVGNames::inAttr,
|
| + SVGNames::interceptAttr,
|
| + SVGNames::k1Attr,
|
| + SVGNames::k2Attr,
|
| + SVGNames::k3Attr,
|
| + SVGNames::k4Attr,
|
| + SVGNames::kernelMatrixAttr,
|
| + SVGNames::kernelUnitLengthAttr,
|
| + SVGNames::lengthAdjustAttr,
|
| + SVGNames::limitingConeAngleAttr,
|
| + SVGNames::markerHeightAttr,
|
| + SVGNames::markerUnitsAttr,
|
| + SVGNames::markerWidthAttr,
|
| + SVGNames::maskContentUnitsAttr,
|
| + SVGNames::maskUnitsAttr,
|
| + SVGNames::methodAttr,
|
| + SVGNames::modeAttr,
|
| + SVGNames::numOctavesAttr,
|
| + SVGNames::offsetAttr,
|
| + SVGNames::operatorAttr,
|
| + SVGNames::orderAttr,
|
| + SVGNames::orientAttr,
|
| + SVGNames::pathLengthAttr,
|
| + SVGNames::patternContentUnitsAttr,
|
| + SVGNames::patternTransformAttr,
|
| + SVGNames::patternUnitsAttr,
|
| + SVGNames::pointsAtXAttr,
|
| + SVGNames::pointsAtYAttr,
|
| + SVGNames::pointsAtZAttr,
|
| + SVGNames::preserveAlphaAttr,
|
| + SVGNames::preserveAspectRatioAttr,
|
| + SVGNames::primitiveUnitsAttr,
|
| + SVGNames::radiusAttr,
|
| + SVGNames::rAttr,
|
| + SVGNames::refXAttr,
|
| + SVGNames::refYAttr,
|
| + SVGNames::resultAttr,
|
| + SVGNames::rotateAttr,
|
| + SVGNames::rxAttr,
|
| + SVGNames::ryAttr,
|
| + SVGNames::scaleAttr,
|
| + SVGNames::seedAttr,
|
| + SVGNames::slopeAttr,
|
| + SVGNames::spacingAttr,
|
| + SVGNames::specularConstantAttr,
|
| + SVGNames::specularExponentAttr,
|
| + SVGNames::spreadMethodAttr,
|
| + SVGNames::startOffsetAttr,
|
| + SVGNames::stdDeviationAttr,
|
| + SVGNames::stitchTilesAttr,
|
| + SVGNames::surfaceScaleAttr,
|
| + SVGNames::tableValuesAttr,
|
| + SVGNames::targetAttr,
|
| + SVGNames::targetXAttr,
|
| + SVGNames::targetYAttr,
|
| + SVGNames::transformAttr,
|
| + SVGNames::typeAttr,
|
| + SVGNames::valuesAttr,
|
| + SVGNames::viewBoxAttr,
|
| + SVGNames::widthAttr,
|
| + SVGNames::x1Attr,
|
| + SVGNames::x2Attr,
|
| + SVGNames::xAttr,
|
| + SVGNames::xChannelSelectorAttr,
|
| + SVGNames::y1Attr,
|
| + SVGNames::y2Attr,
|
| + SVGNames::yAttr,
|
| + SVGNames::yChannelSelectorAttr,
|
| + SVGNames::zAttr,
|
| + }));
|
|
|
| if (name == classAttr)
|
| return true;
|
|
|