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

Unified Diff: src/api.cc

Issue 260017: Implemented really weak handles. (Closed)
Patch Set: Fix typo. Created 11 years, 2 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: src/api.cc
diff --git a/src/api.cc b/src/api.cc
index 00f1e0b7e156dd3f4a8810ddcb90f580450cefc0..846ebf3de6beea794a144a10bd0e180bf7d44641 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -372,6 +372,13 @@ void V8::MakeWeak(i::Object** object, void* parameters,
}
+void V8::MakeReallyWeak(i::Object** object, void* parameters,
+ WeakReferenceCallback callback) {
+ LOG_API("MakeReallyWeak");
+ i::GlobalHandles::MakeReallyWeak(object, parameters, callback);
+}
+
+
void V8::ClearWeak(i::Object** obj) {
LOG_API("ClearWeak");
i::GlobalHandles::ClearWeakness(obj);
@@ -395,7 +402,9 @@ bool V8::IsGlobalWeak(i::Object** obj) {
void V8::DisposeGlobal(i::Object** obj) {
LOG_API("DisposeGlobal");
if (!i::V8::IsRunning()) return;
- if ((*obj)->IsGlobalContext()) i::Heap::NotifyContextDisposed();
+ if (!i::GlobalHandles::IsReallyWeak(obj) && (*obj)->IsGlobalContext()) {
+ i::Heap::NotifyContextDisposed();
+ }
i::GlobalHandles::Destroy(obj);
}

Powered by Google App Engine
This is Rietveld 408576698