summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bindings/v8/DOMDataStore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/bindings/v8/DOMDataStore.cpp')
-rw-r--r--Source/WebCore/bindings/v8/DOMDataStore.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/WebCore/bindings/v8/DOMDataStore.cpp b/Source/WebCore/bindings/v8/DOMDataStore.cpp
index 0d37dc0..5393bd9 100644
--- a/Source/WebCore/bindings/v8/DOMDataStore.cpp
+++ b/Source/WebCore/bindings/v8/DOMDataStore.cpp
@@ -148,11 +148,13 @@ void DOMDataStore::weakActiveDOMObjectCallback(v8::Persistent<v8::Value> v8Objec
DOMData::handleWeakObject(DOMDataStore::ActiveDOMObjectMap, v8::Persistent<v8::Object>::Cast(v8Object), domObject);
}
-void DOMDataStore::weakNodeCallback(v8::Persistent<v8::Value> v8Object, void* domObject)
+void DOMDataStore::weakNodeCallback(v8::Persistent<v8::Value> value, void* domObject)
{
ASSERT(WTF::isMainThread());
Node* node = static_cast<Node*>(domObject);
+ // Node wrappers must be JS objects.
+ v8::Persistent<v8::Object> v8Object = v8::Persistent<v8::Object>::Cast(value);
WTF::MutexLocker locker(DOMDataStore::allStoresMutex());
DOMDataList& list = DOMDataStore::allStores();
@@ -171,7 +173,7 @@ void DOMDataStore::weakNodeCallback(v8::Persistent<v8::Value> v8Object, void* do
node->deref(); // Nobody overrides Node::deref so it's safe
}
-bool DOMDataStore::IntrusiveDOMWrapperMap::removeIfPresent(Node* obj, v8::Persistent<v8::Data> value)
+bool DOMDataStore::IntrusiveDOMWrapperMap::removeIfPresent(Node* obj, v8::Persistent<v8::Object> value)
{
ASSERT(obj);
v8::Persistent<v8::Object>* entry = obj->wrapper();