Index: src/global-handles.h |
diff --git a/src/global-handles.h b/src/global-handles.h |
index 63c1760796e90cd7b3d118f0dab77a1ff1ef0b00..7047d8ca015d7344022cb61e4fe4d18308803a8c 100644 |
--- a/src/global-handles.h |
+++ b/src/global-handles.h |
@@ -197,6 +197,10 @@ class GlobalHandles { |
// class ID. |
void IterateAllRootsInNewSpaceWithClassIds(ObjectVisitor* v); |
+ // Iterate over all handles in the new space that are weak, unmodified |
+ // and have class IDs |
+ void IterateWeakRootsInNewSpaceWithClassIds(ObjectVisitor* v); |
+ |
// Iterates over all weak roots in heap. |
void IterateWeakRoots(ObjectVisitor* v); |
@@ -204,7 +208,7 @@ class GlobalHandles { |
// them as pending. |
void IdentifyWeakHandles(WeakSlotCallback f); |
- // NOTE: Three ...NewSpace... functions below are used during |
+ // NOTE: Five ...NewSpace... functions below are used during |
// scavenge collections and iterate over sets of handles that are |
// guaranteed to contain all handles holding new space objects (but |
// may also include old space objects). |
@@ -220,6 +224,19 @@ class GlobalHandles { |
// See the note above. |
void IterateNewSpaceWeakIndependentRoots(ObjectVisitor* v); |
+ // Finds weak independent or unmodified handles satisfying |
+ // the callback predicate and marks them as pending. See the note above. |
+ void MarkNewSpaceWeakUnmodifiedObjectsPending( |
+ WeakSlotCallbackWithHeap is_unscavenged); |
+ |
+ // Iterates over weak independent or unmodified handles. |
+ // See the note above. |
+ void IterateNewSpaceWeakUnmodifiedRoots(ObjectVisitor* v); |
+ |
+ // Identify unmodified objects that are in weak state and marks them |
+ // unmodified |
+ void IdentifyWeakUnmodifiedObjects(WeakSlotCallback is_unmodified); |
+ |
// Iterate over objects in object groups that have at least one object |
// which requires visiting. The callback has to return true if objects |
// can be skipped and false otherwise. |