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

Unified Diff: src/global-handles.h

Issue 7031005: Extend Handle API with MarkIndependent. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: do not process PENDING dependent handles after SCAVENGE Created 9 years, 7 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/global-handles.h
diff --git a/src/global-handles.h b/src/global-handles.h
index c89a2aacdd18ab6c4c7f23c8e073d6b989446f52..3477bcaaa9504d2fd370d6a253487ff32e9581ab 100644
--- a/src/global-handles.h
+++ b/src/global-handles.h
@@ -146,6 +146,9 @@ class GlobalHandles {
// Clear the weakness of a global handle.
void ClearWeakness(Object** location);
+ // Clear the weakness of a global handle.
+ void MarkIndependent(Object** location);
+
// Tells whether global handle is near death.
static bool IsNearDeath(Object** location);
@@ -154,11 +157,14 @@ class GlobalHandles {
// Process pending weak handles.
// Returns true if next major GC is likely to collect more garbage.
- bool PostGarbageCollectionProcessing();
+ bool PostGarbageCollectionProcessing(GarbageCollector collector);
// Iterates over all strong handles.
void IterateStrongRoots(ObjectVisitor* v);
+ // Iterates over all strong and dependent handles.
+ void IterateStrongAndDependentRoots(ObjectVisitor* v);
+
// Iterates over all handles.
void IterateAllRoots(ObjectVisitor* v);
@@ -168,6 +174,9 @@ class GlobalHandles {
// Iterates over all weak roots in heap.
void IterateWeakRoots(ObjectVisitor* v);
+ // Iterates over all weak independent roots in heap.
+ void IterateWeakIndependentRoots(ObjectVisitor* v);
+
// Iterates over weak roots that are bound to a given callback.
void IterateWeakRoots(WeakReferenceGuest f,
WeakReferenceCallback callback);
@@ -176,6 +185,10 @@ class GlobalHandles {
// them as pending.
void IdentifyWeakHandles(WeakSlotCallback f);
+ // Find all weak independent handles satisfying the callback predicate, mark
+ // them as pending.
+ void IdentifyWeakIndependentHandles(WeakSlotCallbackWithHeap f);
+
// Add an object group.
// Should be only used in GC callback function before a collection.
// All groups are destroyed after a mark-compact collection.

Powered by Google App Engine
This is Rietveld 408576698