| 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.
|
|
|