| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2008 Apple Inc. All rights reserved. | 4 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
| 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 1027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1038 | 1038 |
| 1039 #if ENABLE(ASSERT) | 1039 #if ENABLE(ASSERT) |
| 1040 bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const | 1040 bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const |
| 1041 { | 1041 { |
| 1042 // This static is atomically initialized to dodge a warning about | 1042 // This static is atomically initialized to dodge a warning about |
| 1043 // a race when dumping debug data for a layer. | 1043 // a race when dumping debug data for a layer. |
| 1044 DEFINE_THREAD_SAFE_STATIC_LOCAL(HashSet<QualifiedName>, animatableAttributes
, new HashSet<QualifiedName>()); | 1044 DEFINE_THREAD_SAFE_STATIC_LOCAL(HashSet<QualifiedName>, animatableAttributes
, new HashSet<QualifiedName>()); |
| 1045 | 1045 |
| 1046 if (animatableAttributes.isEmpty()) { | 1046 if (animatableAttributes.isEmpty()) { |
| 1047 const QualifiedName* const animatableAttrs[] = { | 1047 const QualifiedName* const animatableAttrs[] = { |
| 1048 &XLinkNames::hrefAttr, | |
| 1049 &SVGNames::amplitudeAttr, | 1048 &SVGNames::amplitudeAttr, |
| 1050 &SVGNames::azimuthAttr, | 1049 &SVGNames::azimuthAttr, |
| 1051 &SVGNames::baseFrequencyAttr, | 1050 &SVGNames::baseFrequencyAttr, |
| 1052 &SVGNames::biasAttr, | 1051 &SVGNames::biasAttr, |
| 1053 &SVGNames::clipPathUnitsAttr, | 1052 &SVGNames::clipPathUnitsAttr, |
| 1054 &SVGNames::cxAttr, | 1053 &SVGNames::cxAttr, |
| 1055 &SVGNames::cyAttr, | 1054 &SVGNames::cyAttr, |
| 1056 &SVGNames::diffuseConstantAttr, | 1055 &SVGNames::diffuseConstantAttr, |
| 1057 &SVGNames::divisorAttr, | 1056 &SVGNames::divisorAttr, |
| 1058 &SVGNames::dxAttr, | 1057 &SVGNames::dxAttr, |
| 1059 &SVGNames::dyAttr, | 1058 &SVGNames::dyAttr, |
| 1060 &SVGNames::edgeModeAttr, | 1059 &SVGNames::edgeModeAttr, |
| 1061 &SVGNames::elevationAttr, | 1060 &SVGNames::elevationAttr, |
| 1062 &SVGNames::exponentAttr, | 1061 &SVGNames::exponentAttr, |
| 1063 &SVGNames::filterUnitsAttr, | 1062 &SVGNames::filterUnitsAttr, |
| 1064 &SVGNames::fxAttr, | 1063 &SVGNames::fxAttr, |
| 1065 &SVGNames::fyAttr, | 1064 &SVGNames::fyAttr, |
| 1066 &SVGNames::gradientTransformAttr, | 1065 &SVGNames::gradientTransformAttr, |
| 1067 &SVGNames::gradientUnitsAttr, | 1066 &SVGNames::gradientUnitsAttr, |
| 1068 &SVGNames::heightAttr, | 1067 &SVGNames::heightAttr, |
| 1068 &SVGNames::hrefAttr, |
| 1069 &SVGNames::in2Attr, | 1069 &SVGNames::in2Attr, |
| 1070 &SVGNames::inAttr, | 1070 &SVGNames::inAttr, |
| 1071 &SVGNames::interceptAttr, | 1071 &SVGNames::interceptAttr, |
| 1072 &SVGNames::k1Attr, | 1072 &SVGNames::k1Attr, |
| 1073 &SVGNames::k2Attr, | 1073 &SVGNames::k2Attr, |
| 1074 &SVGNames::k3Attr, | 1074 &SVGNames::k3Attr, |
| 1075 &SVGNames::k4Attr, | 1075 &SVGNames::k4Attr, |
| 1076 &SVGNames::kernelMatrixAttr, | 1076 &SVGNames::kernelMatrixAttr, |
| 1077 &SVGNames::kernelUnitLengthAttr, | 1077 &SVGNames::kernelUnitLengthAttr, |
| 1078 &SVGNames::lengthAdjustAttr, | 1078 &SVGNames::lengthAdjustAttr, |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1171 const SVGElementSet& incomingReferences = svgRareData()->incomingReferences(
); | 1171 const SVGElementSet& incomingReferences = svgRareData()->incomingReferences(
); |
| 1172 | 1172 |
| 1173 // Iterate on a snapshot as |incomingReferences| may be altered inside loop. | 1173 // Iterate on a snapshot as |incomingReferences| may be altered inside loop. |
| 1174 WillBeHeapVector<RawPtrWillBeMember<SVGElement>> incomingReferencesSnapshot; | 1174 WillBeHeapVector<RawPtrWillBeMember<SVGElement>> incomingReferencesSnapshot; |
| 1175 copyToVector(incomingReferences, incomingReferencesSnapshot); | 1175 copyToVector(incomingReferences, incomingReferencesSnapshot); |
| 1176 | 1176 |
| 1177 // Force rebuilding the |sourceElement| so it knows about this change. | 1177 // Force rebuilding the |sourceElement| so it knows about this change. |
| 1178 for (SVGElement* sourceElement : incomingReferencesSnapshot) { | 1178 for (SVGElement* sourceElement : incomingReferencesSnapshot) { |
| 1179 // Before rebuilding |sourceElement| ensure it was not removed from unde
r us. | 1179 // Before rebuilding |sourceElement| ensure it was not removed from unde
r us. |
| 1180 if (incomingReferences.contains(sourceElement)) | 1180 if (incomingReferences.contains(sourceElement)) |
| 1181 sourceElement->svgAttributeChanged(XLinkNames::hrefAttr); | 1181 sourceElement->svgAttributeChanged(SVGNames::hrefAttr); |
| 1182 } | 1182 } |
| 1183 } | 1183 } |
| 1184 | 1184 |
| 1185 void SVGElement::removeAllIncomingReferences() | 1185 void SVGElement::removeAllIncomingReferences() |
| 1186 { | 1186 { |
| 1187 if (!hasSVGRareData()) | 1187 if (!hasSVGRareData()) |
| 1188 return; | 1188 return; |
| 1189 | 1189 |
| 1190 SVGElementSet& incomingReferences = svgRareData()->incomingReferences(); | 1190 SVGElementSet& incomingReferences = svgRareData()->incomingReferences(); |
| 1191 for (SVGElement* sourceElement: incomingReferences) { | 1191 for (SVGElement* sourceElement: incomingReferences) { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1219 Element::trace(visitor); | 1219 Element::trace(visitor); |
| 1220 } | 1220 } |
| 1221 | 1221 |
| 1222 const AtomicString& SVGElement::eventParameterName() | 1222 const AtomicString& SVGElement::eventParameterName() |
| 1223 { | 1223 { |
| 1224 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con
structFromLiteral)); | 1224 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con
structFromLiteral)); |
| 1225 return evtString; | 1225 return evtString; |
| 1226 } | 1226 } |
| 1227 | 1227 |
| 1228 } // namespace blink | 1228 } // namespace blink |
| OLD | NEW |