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 24 matching lines...) Expand all Loading... | |
35 #include "core/dom/Document.h" | 35 #include "core/dom/Document.h" |
36 #include "core/dom/ElementTraversal.h" | 36 #include "core/dom/ElementTraversal.h" |
37 #include "core/dom/shadow/ShadowRoot.h" | 37 #include "core/dom/shadow/ShadowRoot.h" |
38 #include "core/events/Event.h" | 38 #include "core/events/Event.h" |
39 #include "core/frame/Settings.h" | 39 #include "core/frame/Settings.h" |
40 #include "core/html/HTMLElement.h" | 40 #include "core/html/HTMLElement.h" |
41 #include "core/rendering/RenderObject.h" | 41 #include "core/rendering/RenderObject.h" |
42 #include "core/rendering/svg/RenderSVGResourceContainer.h" | 42 #include "core/rendering/svg/RenderSVGResourceContainer.h" |
43 #include "core/svg/SVGCursorElement.h" | 43 #include "core/svg/SVGCursorElement.h" |
44 #include "core/svg/SVGDocumentExtensions.h" | 44 #include "core/svg/SVGDocumentExtensions.h" |
45 #include "core/svg/SVGElementInstance.h" | |
46 #include "core/svg/SVGElementRareData.h" | 45 #include "core/svg/SVGElementRareData.h" |
47 #include "core/svg/SVGGraphicsElement.h" | 46 #include "core/svg/SVGGraphicsElement.h" |
48 #include "core/svg/SVGSVGElement.h" | 47 #include "core/svg/SVGSVGElement.h" |
49 #include "core/svg/SVGTitleElement.h" | 48 #include "core/svg/SVGTitleElement.h" |
50 #include "core/svg/SVGUseElement.h" | 49 #include "core/svg/SVGUseElement.h" |
51 | 50 |
52 #include "wtf/TemporaryChange.h" | 51 #include "wtf/TemporaryChange.h" |
53 | 52 |
54 namespace WebCore { | 53 namespace WebCore { |
55 | 54 |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
521 return 0; | 520 return 0; |
522 } | 521 } |
523 | 522 |
524 SVGDocumentExtensions& SVGElement::accessDocumentSVGExtensions() | 523 SVGDocumentExtensions& SVGElement::accessDocumentSVGExtensions() |
525 { | 524 { |
526 // This function is provided for use by SVGAnimatedProperty to avoid | 525 // This function is provided for use by SVGAnimatedProperty to avoid |
527 // global inclusion of core/dom/Document.h in SVG code. | 526 // global inclusion of core/dom/Document.h in SVG code. |
528 return document().accessSVGExtensions(); | 527 return document().accessSVGExtensions(); |
529 } | 528 } |
530 | 529 |
531 void SVGElement::mapInstanceToElement(SVGElementInstance* instance) | 530 void SVGElement::mapInstanceToElement(SVGElement* instance) |
532 { | 531 { |
533 ASSERT(instance); | 532 ASSERT(instance); |
534 | 533 |
535 HashSet<SVGElement*>& instances = ensureSVGRareData()->elementInstances(); | 534 HashSet<SVGElement*>& instances = ensureSVGRareData()->elementInstances(); |
536 ASSERT(!instances.contains(instance->shadowTreeElement())); | 535 ASSERT(!instances.contains(instance)); |
537 | 536 |
pdr.
2014/05/07 22:27:23
I think the assertion here was useful (similarly i
| |
538 instances.add(instance->shadowTreeElement()); | 537 instances.add(instance); |
539 } | 538 } |
540 | 539 |
541 void SVGElement::removeInstanceMapping(SVGElementInstance* instance) | 540 void SVGElement::removeInstanceMapping(SVGElement* instance) |
542 { | 541 { |
543 ASSERT(instance); | 542 ASSERT(instance); |
544 ASSERT(hasSVGRareData()); | 543 ASSERT(hasSVGRareData()); |
545 | 544 |
546 if (!instance->shadowTreeElement()) | 545 HashSet<SVGElement*>& instances = svgRareData()->elementInstances(); |
547 return; | 546 ASSERT(instances.contains(instance)); |
548 | 547 |
549 HashSet<SVGElement*>& instances = svgRareData()->elementInstances(); | 548 instances.remove(instance); |
550 ASSERT(instances.contains(instance->shadowTreeElement())); | |
551 | |
552 instances.remove(instance->shadowTreeElement()); | |
553 } | 549 } |
554 | 550 |
555 const HashSet<SVGElement*>& SVGElement::instancesForElement() const | 551 const HashSet<SVGElement*>& SVGElement::instancesForElement() const |
556 { | 552 { |
557 if (!hasSVGRareData()) { | 553 if (!hasSVGRareData()) { |
558 DEFINE_STATIC_LOCAL(HashSet<SVGElement*>, emptyInstances, ()); | 554 DEFINE_STATIC_LOCAL(HashSet<SVGElement*>, emptyInstances, ()); |
559 return emptyInstances; | 555 return emptyInstances; |
560 } | 556 } |
561 return svgRareData()->elementInstances(); | 557 return svgRareData()->elementInstances(); |
562 } | 558 } |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1186 animatableAttributes.add(SVGNames::zAttr); | 1182 animatableAttributes.add(SVGNames::zAttr); |
1187 } | 1183 } |
1188 | 1184 |
1189 if (name == classAttr) | 1185 if (name == classAttr) |
1190 return true; | 1186 return true; |
1191 | 1187 |
1192 return animatableAttributes.contains(name); | 1188 return animatableAttributes.contains(name); |
1193 } | 1189 } |
1194 #endif | 1190 #endif |
1195 } | 1191 } |
OLD | NEW |