Title: [113806] trunk/Source/WebCore
Revision
113806
Author
ad...@chromium.org
Date
2012-04-10 18:57:03 -0700 (Tue, 10 Apr 2012)

Log Message

Store V8 SVGElementInstance wrappers in the regular DOMObjectMap
https://bugs.webkit.org/show_bug.cgi?id=83615

Reviewed by Adam Barth.

Historically, these wrappers had their own map, but there doesn't seem
to be any particular reason for this. The V8GCController doesn't
treat them specially (which is the reason you normally need a separate
wrapper map).

No new tests, no expected change in behavior.

* bindings/scripts/CodeGeneratorV8.pm:
(GetDomMapName):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::getDOMWrapperMap):
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
* bindings/v8/ScopedDOMDataStore.cpp:
(WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
(WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
* bindings/v8/StaticDOMDataStore.cpp:
(WebCore::StaticDOMDataStore::StaticDOMDataStore):
* bindings/v8/StaticDOMDataStore.h:
(StaticDOMDataStore):
* bindings/v8/V8DOMMap.cpp:
(WebCore::removeAllDOMObjects):
* bindings/v8/V8DOMMap.h:
(WebCore):
* bindings/v8/V8DOMWrapper.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (113805 => 113806)


--- trunk/Source/WebCore/ChangeLog	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/ChangeLog	2012-04-11 01:57:03 UTC (rev 113806)
@@ -1,3 +1,37 @@
+2012-04-10  Adam Klein  <ad...@chromium.org>
+
+        Store V8 SVGElementInstance wrappers in the regular DOMObjectMap
+        https://bugs.webkit.org/show_bug.cgi?id=83615
+
+        Reviewed by Adam Barth.
+
+        Historically, these wrappers had their own map, but there doesn't seem
+        to be any particular reason for this. The V8GCController doesn't
+        treat them specially (which is the reason you normally need a separate
+        wrapper map).
+
+        No new tests, no expected change in behavior.
+
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GetDomMapName):
+        * bindings/v8/DOMDataStore.cpp:
+        (WebCore::DOMDataStore::DOMDataStore):
+        (WebCore::DOMDataStore::getDOMWrapperMap):
+        * bindings/v8/DOMDataStore.h:
+        (DOMDataStore):
+        * bindings/v8/ScopedDOMDataStore.cpp:
+        (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
+        (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
+        * bindings/v8/StaticDOMDataStore.cpp:
+        (WebCore::StaticDOMDataStore::StaticDOMDataStore):
+        * bindings/v8/StaticDOMDataStore.h:
+        (StaticDOMDataStore):
+        * bindings/v8/V8DOMMap.cpp:
+        (WebCore::removeAllDOMObjects):
+        * bindings/v8/V8DOMMap.h:
+        (WebCore):
+        * bindings/v8/V8DOMWrapper.cpp:
+
 2012-04-10  Noel Gordon  <noel.gor...@gmail.com>
 
         [Qt] Separate image encoding from dataURL construction

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (113805 => 113806)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-04-11 01:57:03 UTC (rev 113806)
@@ -3185,7 +3185,6 @@
     my $dataNode = shift;
     my $type = shift;
 
-    return "DOMSVGElementInstance" if $type eq "SVGElementInstance";
     return "ActiveDOMNode" if (IsNodeSubType($dataNode) && $dataNode->extendedAttributes->{"ActiveDOMObject"});
     return "DOMNode" if IsNodeSubType($dataNode);
     return "ActiveDOMObject" if $dataNode->extendedAttributes->{"ActiveDOMObject"};

Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-04-11 01:57:03 UTC (rev 113806)
@@ -89,9 +89,6 @@
     , m_activeDomNodeMap(0)
     , m_domObjectMap(0)
     , m_activeDomObjectMap(0)
-#if ENABLE(SVG)
-    , m_domSvgElementInstanceMap(0)
-#endif
 {
 }
 
@@ -115,10 +112,6 @@
         return m_domObjectMap;
     case ActiveDOMObjectMap:
         return m_activeDomObjectMap;
-#if ENABLE(SVG)
-    case DOMSVGElementInstanceMap:
-        return m_domSvgElementInstanceMap;
-#endif
     }
 
     ASSERT_NOT_REACHED();
@@ -165,15 +158,4 @@
     node->deref(); // Nobody overrides Node::deref so it's safe
 }
 
-#if ENABLE(SVG)
-
-void DOMDataStore::weakSVGElementInstanceCallback(v8::Persistent<v8::Value> v8Object, void* domObject)
-{
-    v8::HandleScope scope;
-    ASSERT(v8Object->IsObject());
-    DOMData::handleWeakObject(DOMDataStore::DOMSVGElementInstanceMap, v8::Persistent<v8::Object>::Cast(v8Object), static_cast<SVGElementInstance*>(domObject));
-}
-
-#endif  // ENABLE(SVG)
-
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.h (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/DOMDataStore.h	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.h	2012-04-11 01:57:03 UTC (rev 113806)
@@ -67,9 +67,6 @@
             ActiveDOMNodeMap,
             DOMObjectMap,
             ActiveDOMObjectMap,
-#if ENABLE(SVG)
-            DOMSVGElementInstanceMap
-#endif
         };
 
         DOMDataStore();
@@ -84,9 +81,6 @@
         DOMNodeMapping& activeDomNodeMap() { return *m_activeDomNodeMap; }
         DOMWrapperMap<void>& domObjectMap() { return *m_domObjectMap; }
         DOMWrapperMap<void>& activeDomObjectMap() { return *m_activeDomObjectMap; }
-#if ENABLE(SVG)
-        DOMWrapperMap<SVGElementInstance>& domSvgElementInstanceMap() { return *m_domSvgElementInstanceMap; }
-#endif
 
         // Need by V8GCController.
         static void weakActiveDOMObjectCallback(v8::Persistent<v8::Value> v8Object, void* domObject);
@@ -94,17 +88,11 @@
 
     protected:
         static void weakDOMObjectCallback(v8::Persistent<v8::Value> v8Object, void* domObject);
-#if ENABLE(SVG)
-        static void weakSVGElementInstanceCallback(v8::Persistent<v8::Value> v8Object, void* domObject);
-#endif
 
         DOMNodeMapping* m_domNodeMap;
         DOMNodeMapping* m_activeDomNodeMap;
         DOMWrapperMap<void>* m_domObjectMap;
         DOMWrapperMap<void>* m_activeDomObjectMap;
-#if ENABLE(SVG)
-        DOMWrapperMap<SVGElementInstance>* m_domSvgElementInstanceMap;
-#endif
     };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp	2012-04-11 01:57:03 UTC (rev 113806)
@@ -40,9 +40,6 @@
     m_activeDomNodeMap = new DOMWrapperMap<Node>(&DOMDataStore::weakNodeCallback);
     m_domObjectMap = new DOMWrapperMap<void>(&DOMDataStore::weakDOMObjectCallback);
     m_activeDomObjectMap = new DOMWrapperMap<void>(&DOMDataStore::weakActiveDOMObjectCallback);
-#if ENABLE(SVG)
-    m_domSvgElementInstanceMap = new DOMWrapperMap<SVGElementInstance>(&DOMDataStore::weakSVGElementInstanceCallback);
-#endif
 }
 
 ScopedDOMDataStore::~ScopedDOMDataStore()
@@ -51,9 +48,6 @@
     delete m_activeDomNodeMap;
     delete m_domObjectMap;
     delete m_activeDomObjectMap;
-#if ENABLE(SVG)
-    delete m_domSvgElementInstanceMap;
-#endif
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp	2012-04-11 01:57:03 UTC (rev 113806)
@@ -40,17 +40,11 @@
     , m_staticActiveDomNodeMap(&DOMDataStore::weakNodeCallback)
     , m_staticDomObjectMap(&DOMDataStore::weakDOMObjectCallback)
     , m_staticActiveDomObjectMap(&DOMDataStore::weakActiveDOMObjectCallback)
-#if ENABLE(SVG)
-    , m_staticDomSvgElementInstanceMap(&DOMDataStore::weakSVGElementInstanceCallback)
-#endif
 {
     m_domNodeMap = &m_staticDomNodeMap;
     m_activeDomNodeMap = &m_staticActiveDomNodeMap;
     m_domObjectMap = &m_staticDomObjectMap;
     m_activeDomObjectMap = &m_staticActiveDomObjectMap;
-#if ENABLE(SVG)
-    m_domSvgElementInstanceMap = &m_staticDomSvgElementInstanceMap;
-#endif
     V8BindingPerIsolateData::current()->registerDOMDataStore(this);
 }
 

Modified: trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h	2012-04-11 01:57:03 UTC (rev 113806)
@@ -54,9 +54,6 @@
     IntrusiveDOMWrapperMap m_staticActiveDomNodeMap;
     DOMWrapperMap<void> m_staticDomObjectMap;
     DOMWrapperMap<void> m_staticActiveDomObjectMap;
-#if ENABLE(SVG)
-    DOMWrapperMap<SVGElementInstance> m_staticDomSvgElementInstanceMap;
-#endif
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/V8DOMMap.cpp (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/V8DOMMap.cpp	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/V8DOMMap.cpp	2012-04-11 01:57:03 UTC (rev 113806)
@@ -79,15 +79,6 @@
     return getDOMDataStore().activeDomObjectMap();
 }
 
-#if ENABLE(SVG)
-
-DOMWrapperMap<SVGElementInstance>& getDOMSVGElementInstanceMap()
-{
-    return getDOMDataStore().domSvgElementInstanceMap();
-}
-
-#endif // ENABLE(SVG)
-
 void removeAllDOMObjects()
 {
     DOMDataStore& store = getDOMDataStore();
@@ -101,11 +92,6 @@
 
         // Remove all active DOM nodes.
         DOMData::removeObjectsFromWrapperMap<Node>(&store, store.activeDomNodeMap());
-
-#if ENABLE(SVG)
-        // Remove all SVG element instances in the wrapper map.
-        DOMData::removeObjectsFromWrapperMap<SVGElementInstance>(&store, store.domSvgElementInstanceMap());
-#endif
     }
 
     // Remove all DOM objects in the wrapper map.
@@ -163,20 +149,4 @@
     }
 }
 
-#if ENABLE(SVG)
-
-void visitDOMSVGElementInstances(DOMWrapperMap<SVGElementInstance>::Visitor* visitor)
-{
-    v8::HandleScope scope;
-
-    DOMDataList& list = DOMDataStore::allStores();
-    for (size_t i = 0; i < list.size(); ++i) {
-        DOMDataStore* store = list[i];
-
-        store->domSvgElementInstanceMap().visit(store, visitor);
-    }
-}
-
-#endif
-
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/V8DOMMap.h (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/V8DOMMap.h	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/V8DOMMap.h	2012-04-11 01:57:03 UTC (rev 113806)
@@ -38,9 +38,6 @@
 namespace WebCore {
     class DOMDataStore;
     class Node;
-#if ENABLE(SVG)
-    class SVGElementInstance;
-#endif
 
     template <class KeyType, class ValueType> class AbstractWeakReferenceMap {
     public:
@@ -170,12 +167,6 @@
     // This should be called to remove all DOM objects associated with the current thread when it is tearing down.
     void removeAllDOMObjects();
 
-#if ENABLE(SVG)
-    // A map for SVGElementInstances to its JS wrapper.
-    DOMWrapperMap<SVGElementInstance>& getDOMSVGElementInstanceMap();
-    void visitSVGElementInstances(DOMWrapperMap<SVGElementInstance>::Visitor*);
-#endif
-
     void enableFasterDOMStoreAccess();
 } // namespace WebCore
 

Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (113805 => 113806)


--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2012-04-11 01:57:03 UTC (rev 113806)
@@ -36,7 +36,6 @@
 #include "EventTargetHeaders.h"
 #include "EventTargetInterfaces.h"
 #include "FrameLoaderClient.h"
-#include "SVGElementInstance.h"
 #include "SafeAllocation.h"
 #include "StylePropertySet.h"
 #include "V8AbstractEventListener.h"
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to