Index: Source/bindings/v8/DOMWrapperWorld.cpp |
diff --git a/Source/bindings/v8/DOMWrapperWorld.cpp b/Source/bindings/v8/DOMWrapperWorld.cpp |
index 30f1911f4df2e4cdc7c332524212fe9c87e0ba68..53fb4caf17dabc62f48cd890f0cb6e9c2d13ab63 100644 |
--- a/Source/bindings/v8/DOMWrapperWorld.cpp |
+++ b/Source/bindings/v8/DOMWrapperWorld.cpp |
@@ -83,7 +83,7 @@ static WorldMap& isolatedWorldMap() |
return map; |
} |
-void DOMWrapperWorld::allWorldsInMainThread(Vector<RefPtr<DOMWrapperWorld> >& worlds) |
+void DOMWrapperWorld::allWorldsInMainThread(Vector<DOMWrapperWorld*>& worlds) |
{ |
ASSERT(isMainThread()); |
worlds.append(mainWorld()); |
@@ -96,6 +96,8 @@ DOMWrapperWorld::~DOMWrapperWorld() |
{ |
ASSERT(!isMainWorld()); |
+ dispose(); |
+ |
if (!isIsolatedWorld()) |
return; |
@@ -112,6 +114,11 @@ DOMWrapperWorld::~DOMWrapperWorld() |
ASSERT(map.size() == isolatedWorldCount); |
} |
+void DOMWrapperWorld::dispose() |
+{ |
+ m_domDataStore.clear(); |
+} |
+ |
#ifndef NDEBUG |
static bool isIsolatedWorldId(int worldId) |
{ |