org.mmtk.plan.generational.immix
Class GenImmixMatureDefragTraceLocal
java.lang.Object
org.mmtk.plan.TransitiveClosure
org.mmtk.plan.TraceLocal
org.mmtk.plan.generational.GenMatureTraceLocal
org.mmtk.plan.generational.immix.GenImmixMatureDefragTraceLocal
- All Implemented Interfaces:
- Constants
public final class GenImmixMatureDefragTraceLocal
- extends GenMatureTraceLocal
This class implements the core functionality for a transitive
closure over the heap graph, specifically in a defragmenting pass over
a generational immix collector.
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, processRootEdge, processRoots, readyToFinalize, release, reportDelayedRootEdge, retainForFinalize, retainReferent, traceObject |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GenImmixMatureDefragTraceLocal
public GenImmixMatureDefragTraceLocal(Trace global,
GenCollector plan)
- Constructor
isLive
public boolean isLive(ObjectReference object)
- Description copied from class:
GenMatureTraceLocal
- Is the specified object live?
- Overrides:
isLive
in class GenMatureTraceLocal
- Parameters:
object
- The object.
- Returns:
true
if the object is live.
traceObject
public ObjectReference traceObject(ObjectReference object)
- Description copied from class:
TraceLocal
- This method is the core method during the trace of the object graph.
The role of this method is to:
- Ensure the traced object is not collected.
- If this is the first visit to the object enqueue it to be scanned.
- Return the forwarded reference to the object.
- Overrides:
traceObject
in class GenMatureTraceLocal
- Parameters:
object
- The object to be traced.
- Returns:
- The new reference to the same object instance.
willNotMoveInCurrentCollection
public boolean willNotMoveInCurrentCollection(ObjectReference object)
- Description copied from class:
GenMatureTraceLocal
- Return
true
if this object is guaranteed not to move during this
collection (i.e. this object is definitely not an unforwarded
object).
- Overrides:
willNotMoveInCurrentCollection
in class GenMatureTraceLocal
- Parameters:
object
- The object that must not move during the collection.
- Returns:
true
if this object is guaranteed not to move during this
collection.
scanObject
protected void scanObject(ObjectReference object)
- Description copied from class:
TraceLocal
- Collectors that move objects must override this method.
It performs the deferred scanning of objects which are forwarded
during bootstrap of each copying collection. Because of the
complexities of the collection bootstrap (such objects are
generally themselves gc-critical), the forwarding and scanning of
the objects must be dislocated. It is an error for a non-moving
collector to call this method.
- Overrides:
scanObject
in class TraceLocal
- Parameters:
object
- The forwarded object to be scanned