Index: Source/core/svg/SVGElementInstance.cpp |
diff --git a/Source/core/svg/SVGElementInstance.cpp b/Source/core/svg/SVGElementInstance.cpp |
deleted file mode 100644 |
index 6c391e885fe1c050d631008a5367e209c85cae5e..0000000000000000000000000000000000000000 |
--- a/Source/core/svg/SVGElementInstance.cpp |
+++ /dev/null |
@@ -1,136 +0,0 @@ |
-/* |
- * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
- * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
- * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
- * |
- * This library is free software; you can redistribute it and/or |
- * modify it under the terms of the GNU Library General Public |
- * License as published by the Free Software Foundation; either |
- * version 2 of the License, or (at your option) any later version. |
- * |
- * This library is distributed in the hope that it will be useful, |
- * but WITHOUT ANY WARRANTY; without even the implied warranty of |
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
- * Library General Public License for more details. |
- * |
- * You should have received a copy of the GNU Library General Public License |
- * along with this library; see the file COPYING.LIB. If not, write to |
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
- * Boston, MA 02110-1301, USA. |
- */ |
- |
-#include "config.h" |
- |
-#include "core/svg/SVGElementInstance.h" |
- |
-#include "core/dom/ContainerNodeAlgorithms.h" |
-#include "core/events/Event.h" |
-#include "core/events/EventListener.h" |
-#include "core/svg/SVGElement.h" |
-#include "core/svg/SVGUseElement.h" |
- |
-#include "wtf/RefCountedLeakCounter.h" |
- |
-namespace WebCore { |
- |
-DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, instanceCounter, ("WebCoreSVGElementInstance")); |
- |
-PassRefPtrWillBeRawPtr<SVGElementInstance> SVGElementInstance::create(SVGUseElement* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtrWillBeRawPtr<SVGElement> originalElement) |
-{ |
- return adoptRefWillBeRefCountedGarbageCollected(new SVGElementInstance(correspondingUseElement, directUseElement, originalElement)); |
-} |
- |
-SVGElementInstance::SVGElementInstance(SVGUseElement* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtrWillBeRawPtr<SVGElement> originalElement) |
- : m_parentInstance(nullptr) |
- , m_correspondingUseElement(correspondingUseElement) |
- , m_directUseElement(directUseElement) |
- , m_element(originalElement) |
- , m_previousSibling(nullptr) |
- , m_nextSibling(nullptr) |
- , m_firstChild(nullptr) |
- , m_lastChild(nullptr) |
-{ |
- ASSERT(m_correspondingUseElement); |
- ASSERT(m_element); |
- ScriptWrappable::init(this); |
- |
-#ifndef NDEBUG |
- instanceCounter.increment(); |
-#endif |
-} |
- |
-SVGElementInstance::~SVGElementInstance() |
-{ |
-#ifndef NDEBUG |
- instanceCounter.decrement(); |
-#endif |
- |
-#if !ENABLE(OILPAN) |
- // Call detach because we may be deleted directly if we are a child of a detached instance. |
- detach(); |
- m_element = nullptr; |
-#endif |
-} |
- |
-// It's important not to inline removedLastRef, because we don't want to inline the code to |
-// delete an SVGElementInstance at each deref call site. |
-#if !ENABLE(OILPAN) |
-void SVGElementInstance::removedLastRef() |
-{ |
-#if SECURITY_ASSERT_ENABLED |
- m_deletionHasBegun = true; |
-#endif |
- delete this; |
-} |
-#endif |
- |
-void SVGElementInstance::detach() |
-{ |
- // Clear all pointers. When the node is detached from the shadow DOM it should be removed but, |
- // due to ref counting, it may not be. So clear everything to avoid dangling pointers. |
- |
- for (SVGElementInstance* node = firstChild(); node; node = node->nextSibling()) |
- node->detach(); |
- |
- // Deregister as instance for passed element, if we haven't already. |
- if (shadowTreeElement() && m_element->instancesForElement().contains(shadowTreeElement())) |
- m_element->removeInstanceMapping(shadowTreeElement()); |
- |
- m_shadowTreeElement = nullptr; |
- |
- m_directUseElement = nullptr; |
- m_correspondingUseElement = nullptr; |
- |
-#if !ENABLE(OILPAN) |
- removeDetachedChildrenInContainer<SVGElementInstance, SVGElementInstance>(*this); |
-#endif |
-} |
- |
-void SVGElementInstance::setShadowTreeElement(SVGElement* element) |
-{ |
- ASSERT(element); |
- m_shadowTreeElement = element; |
- // Register as instance for passed element. |
- m_element->mapInstanceToElement(shadowTreeElement()); |
- |
-} |
- |
-void SVGElementInstance::appendChild(PassRefPtrWillBeRawPtr<SVGElementInstance> child) |
-{ |
- appendChildToContainer<SVGElementInstance, SVGElementInstance>(*child, *this); |
-} |
- |
-void SVGElementInstance::trace(Visitor* visitor) |
-{ |
- visitor->trace(m_parentInstance); |
- visitor->trace(m_correspondingUseElement); |
- visitor->trace(m_directUseElement); |
- visitor->trace(m_element); |
- visitor->trace(m_shadowTreeElement); |
- visitor->trace(m_previousSibling); |
- visitor->trace(m_nextSibling); |
- visitor->trace(m_firstChild); |
- visitor->trace(m_lastChild); |
-} |
- |
-} |