org.mmtk.plan.refcount.generational
Class GenRCFindRootSetTraceLocal
java.lang.Object
org.mmtk.plan.TransitiveClosure
org.mmtk.plan.TraceLocal
org.mmtk.plan.refcount.generational.GenRCFindRootSetTraceLocal
- All Implemented Interfaces:
- Constants
public final class GenRCFindRootSetTraceLocal
- extends TraceLocal
This class implements the thread-local core functionality for a transitive
closure over the heap graph.
Fields inherited from interface org.mmtk.utility.Constants |
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING |
Methods inherited from class org.mmtk.plan.TraceLocal |
completeTrace, flush, getForwardedFinalizable, getForwardedReference, getForwardedReferenceType, getForwardedReferent, incrementalTrace, isReachable, isReferentLive, logMessage, overwriteReferenceDuringTrace, prepare, processEdge, processInteriorEdge, processNode, processRememberedSets, processRootEdge, processRoots, readyToFinalize, release, reportDelayedRootEdge, retainForFinalize, retainReferent, scanObject |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
rootBuffer
private final ObjectReferenceDeque rootBuffer
GenRCFindRootSetTraceLocal
public GenRCFindRootSetTraceLocal(Trace trace,
ObjectReferenceDeque rootBuffer)
- Constructor
isLive
public boolean isLive(ObjectReference object)
- Is the specified object reachable?
- Overrides:
isLive
in class TraceLocal
- Parameters:
object
- The object.
- Returns:
true
if the object is reachable.
traceObject
public ObjectReference traceObject(ObjectReference object)
- When we trace a non-root object we do nothing.
- Overrides:
traceObject
in class TraceLocal
- Parameters:
object
- The object to be traced.
- Returns:
- The new reference to the same object instance.
traceObject
public ObjectReference traceObject(ObjectReference object,
boolean root)
- When we trace a root object we remember it.
- Overrides:
traceObject
in class TraceLocal
- Parameters:
object
- The object to be traced.root
- Is this object a root?
- Returns:
- The new reference to the same object instance.
willNotMoveInCurrentCollection
public boolean willNotMoveInCurrentCollection(ObjectReference object)
- Description copied from class:
TraceLocal
- Ensure that the referenced object will not move from this point through
to the end of the collection. This can involve forwarding the object
if necessary.
Non-copying collectors do nothing, copying collectors must
override this method in each of their trace classes.
- Overrides:
willNotMoveInCurrentCollection
in class TraceLocal
- Parameters:
object
- The object that must not move during the collection.
- Returns:
true
If the object will not move during collection