[V8] Pass Isolate to getDOMXXXMap()
authorharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Apr 2012 21:38:39 +0000 (21:38 +0000)
committerharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Apr 2012 21:38:39 +0000 (21:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=85022

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to getDOMXXXMap().

Also this patch removes DOMMap::getDOMDataStore() and
DOMData::getDefalutStore(), since the indirection by the
methods is redundant. This is not for performance
optimization but just for refactoring.

No tests. No change in behavior.

* bindings/v8/DOMData.cpp:
(WebCore::DOMData::getCurrentStore):
* bindings/v8/DOMData.h:
(DOMData):
* bindings/v8/V8DOMMap.cpp:
(WebCore::getDOMNodeMap):
(WebCore::getActiveDOMNodeMap):
(WebCore::getDOMObjectMap):
(WebCore::getActiveDOMObjectMap):
(WebCore::removeAllDOMObjects):
* bindings/v8/V8DOMMap.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115495 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bindings/v8/DOMData.cpp
Source/WebCore/bindings/v8/DOMData.h
Source/WebCore/bindings/v8/V8DOMMap.cpp
Source/WebCore/bindings/v8/V8DOMMap.h

index 81ee74e..90b92ff 100644 (file)
@@ -1,5 +1,35 @@
 2012-04-26  Kentaro Hara  <haraken@chromium.org>
 
+        [V8] Pass Isolate to getDOMXXXMap()
+        https://bugs.webkit.org/show_bug.cgi?id=85022
+
+        Reviewed by Nate Chapin.
+
+        The objective is to pass Isolate around in V8 bindings.
+        This patch passes Isolate to getDOMXXXMap().
+
+        Also this patch removes DOMMap::getDOMDataStore() and
+        DOMData::getDefalutStore(), since the indirection by the
+        methods is redundant. This is not for performance
+        optimization but just for refactoring.
+
+        No tests. No change in behavior.
+
+        * bindings/v8/DOMData.cpp:
+        (WebCore::DOMData::getCurrentStore):
+        * bindings/v8/DOMData.h:
+        (DOMData):
+        * bindings/v8/V8DOMMap.cpp:
+        (WebCore::getDOMNodeMap):
+        (WebCore::getActiveDOMNodeMap):
+        (WebCore::getDOMObjectMap):
+        (WebCore::getActiveDOMObjectMap):
+        (WebCore::removeAllDOMObjects):
+        * bindings/v8/V8DOMMap.h:
+        (WebCore):
+
+2012-04-26  Kentaro Hara  <haraken@chromium.org>
+
         [V8] Pass Isolate to V8BindingPerIsolateData::current()
         https://bugs.webkit.org/show_bug.cgi?id=85023
 
index ab5c212..c3faf98 100644 (file)
 
 namespace WebCore {
 
-static StaticDOMDataStore& getDefaultStore() 
+DOMDataStore& DOMData::getCurrentStore(v8::Isolate* isolate)
 {
     DEFINE_STATIC_LOCAL(StaticDOMDataStore, defaultStore, ());
-    return defaultStore;
-}
-
-DOMDataStore& DOMData::getCurrentStore()
-{
     V8BindingPerIsolateData* data = V8BindingPerIsolateData::current();
     if (UNLIKELY(data->domDataStore() != 0))
         return *data->domDataStore();
     V8IsolatedContext* context = V8IsolatedContext::getEntered();
     if (UNLIKELY(context != 0))
         return *context->world()->domDataStore();
-    return getDefaultStore();
+    return defaultStore;
 }
 
 void DOMData::derefObject(WrapperTypeInfo* type, void* domObject)
index 71e7e58..7df9dfd 100644 (file)
@@ -53,7 +53,7 @@ namespace WebCore {
         static void removeObjectsFromWrapperMap(DOMDataStore* store, AbstractWeakReferenceMap<T, v8::Object>& domMap);
 
 
-        static DOMDataStore& getCurrentStore();
+        static DOMDataStore& getCurrentStore(v8::Isolate* = 0);
     private:
         DOMData();
         static void derefObject(WrapperTypeInfo* type, void* domObject);
index ce80425..f09a4a8 100644 (file)
@@ -50,38 +50,33 @@ DOMDataStoreHandle::~DOMDataStoreHandle()
     V8BindingPerIsolateData::current()->unregisterDOMDataStore(m_store.get());
 }
 
-static inline DOMDataStore& getDOMDataStore()
-{
-    return DOMData::getCurrentStore();
-}
-
 void enableFasterDOMStoreAccess()
 {
 }
 
-DOMNodeMapping& getDOMNodeMap()
+DOMNodeMapping& getDOMNodeMap(v8::Isolate* isolate)
 {
-    return getDOMDataStore().domNodeMap();
+    return DOMData::getCurrentStore(isolate).domNodeMap();
 }
 
-DOMNodeMapping& getActiveDOMNodeMap()
+DOMNodeMapping& getActiveDOMNodeMap(v8::Isolate* isolate)
 {
-    return getDOMDataStore().activeDomNodeMap();
+    return DOMData::getCurrentStore(isolate).activeDomNodeMap();
 }
 
-DOMWrapperMap<void>& getDOMObjectMap()
+DOMWrapperMap<void>& getDOMObjectMap(v8::Isolate* isolate)
 {
-    return getDOMDataStore().domObjectMap();
+    return DOMData::getCurrentStore(isolate).domObjectMap();
 }
 
-DOMWrapperMap<void>& getActiveDOMObjectMap()
+DOMWrapperMap<void>& getActiveDOMObjectMap(v8::Isolate* isolate)
 {
-    return getDOMDataStore().activeDomObjectMap();
+    return DOMData::getCurrentStore(isolate).activeDomObjectMap();
 }
 
 void removeAllDOMObjects()
 {
-    DOMDataStore& store = getDOMDataStore();
+    DOMDataStore& store = DOMData::getCurrentStore();
 
     v8::HandleScope scope;
 
index 7ec1105..bc51540 100644 (file)
@@ -151,17 +151,17 @@ namespace WebCore {
     };
 
     // A map from DOM node to its JS wrapper.
-    DOMNodeMapping& getDOMNodeMap();
-    DOMNodeMapping& getActiveDOMNodeMap();
+    DOMNodeMapping& getDOMNodeMap(v8::Isolate* = 0);
+    DOMNodeMapping& getActiveDOMNodeMap(v8::Isolate* = 0);
     void visitDOMNodes(DOMWrapperMap<Node>::Visitor*);
     void visitActiveDOMNodes(DOMWrapperMap<Node>::Visitor*);
 
     // A map from a DOM object (non-node) to its JS wrapper. This map does not contain the DOM objects which can have pending activity (active dom objects).
-    DOMWrapperMap<void>& getDOMObjectMap();
+    DOMWrapperMap<void>& getDOMObjectMap(v8::Isolate* = 0);
     void visitDOMObjects(DOMWrapperMap<void>::Visitor*);
 
     // A map from a DOM object to its JS wrapper for DOM objects which can have pending activity.
-    DOMWrapperMap<void>& getActiveDOMObjectMap();
+    DOMWrapperMap<void>& getActiveDOMObjectMap(v8::Isolate* = 0);
     void visitActiveDOMObjects(DOMWrapperMap<void>::Visitor*);
 
     // This should be called to remove all DOM objects associated with the current thread when it is tearing down.