Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(302)

Unified Diff: Source/bindings/core/v8/V8GCController.cpp

Issue 456683002: bindings: Introduces type-check for the internal pointers. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/core/v8/V8GCController.cpp
diff --git a/Source/bindings/core/v8/V8GCController.cpp b/Source/bindings/core/v8/V8GCController.cpp
index bd6b24d61c0d0dfab73b1cfb586d57066da24a25..3eead3e19febec976b71f78d7f4c94bba1bdf539 100644
--- a/Source/bindings/core/v8/V8GCController.cpp
+++ b/Source/bindings/core/v8/V8GCController.cpp
@@ -265,7 +265,6 @@ public:
return;
const WrapperTypeInfo* type = toWrapperTypeInfo(*wrapper);
- void* object = toNative(*wrapper);
ActiveDOMObject* activeDOMObject = type->toActiveDOMObject(*wrapper);
if (activeDOMObject && activeDOMObject->hasPendingActivity())
@@ -273,7 +272,7 @@ public:
if (classId == v8DOMNodeClassId) {
ASSERT(V8Node::hasInstance(*wrapper, m_isolate));
- Node* node = static_cast<Node*>(object);
+ Node* node = V8Node::toNative(*wrapper);
if (node->hasEventListeners())
addReferencesForNodeWithEventListeners(m_isolate, node, v8::Persistent<v8::Object>::Cast(*value));
Node* root = V8GCController::opaqueRootForGC(node, m_isolate);
@@ -281,7 +280,7 @@ public:
if (m_constructRetainedObjectInfos)
m_groupsWhichNeedRetainerInfo.append(root);
} else if (classId == v8DOMObjectClassId) {
- type->visitDOMWrapper(object, v8::Persistent<v8::Object>::Cast(*value), m_isolate);
+ type->visitDOMWrapper(toInternalPointer(*wrapper), v8::Persistent<v8::Object>::Cast(*value), m_isolate);
} else {
ASSERT_NOT_REACHED();
}

Powered by Google App Engine
This is Rietveld 408576698