org.mmtk.plan.generational.copying
Class GenCopyMatureTraceLocal

java.lang.Object
  extended by org.mmtk.plan.TransitiveClosure
      extended by org.mmtk.plan.TraceLocal
          extended by org.mmtk.plan.generational.GenMatureTraceLocal
              extended by org.mmtk.plan.generational.copying.GenCopyMatureTraceLocal
All Implemented Interfaces:
Constants

public final class GenCopyMatureTraceLocal
extends GenMatureTraceLocal

This class implements the core functionality for a transitive closure over the heap graph, specifically in a Generational copying collector.


Field Summary
 
Fields inherited from class org.mmtk.plan.TraceLocal
rootLocations, values
 
Fields inherited from class org.mmtk.plan.TransitiveClosure
specializedScan
 
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
 
Constructor Summary
GenCopyMatureTraceLocal(Trace global, GenCollector plan)
          Constructor
 
Method Summary
private static GenCopy global()
           
 boolean isLive(ObjectReference object)
          Is the specified object live?
 ObjectReference traceObject(ObjectReference object)
          Trace a reference into the mature space during GC.
 boolean willNotMoveInCurrentCollection(ObjectReference object)
          Return true if this object is guaranteed not to move during this collection (i.e. this object is definitely not an unforwarded object).
 
Methods inherited from class org.mmtk.plan.generational.GenMatureTraceLocal
processRememberedSets
 
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, scanObject, traceObject
 
Methods inherited from class org.mmtk.plan.TransitiveClosure
getSpecializedScanClass, registerSpecializedScan
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GenCopyMatureTraceLocal

public GenCopyMatureTraceLocal(Trace global,
                               GenCollector plan)
Constructor

Method Detail

global

private static GenCopy global()

traceObject

public ObjectReference traceObject(ObjectReference object)
Trace a reference into the mature space during GC. This involves determining whether the instance is in from space, and if so, calling the traceObject method of the Copy collector.

Overrides:
traceObject in class GenMatureTraceLocal
Parameters:
object - The object reference to be traced. This is NOT an interior pointer.
Returns:
The possibly moved reference.

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.

willNotMoveInCurrentCollection

public boolean willNotMoveInCurrentCollection(ObjectReference object)
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.