org.mmtk.utility.sanitychecker
Class SanityRootTraceLocal

java.lang.Object
  extended by org.mmtk.plan.TransitiveClosure
      extended by org.mmtk.plan.TraceLocal
          extended by org.mmtk.utility.sanitychecker.SanityRootTraceLocal
All Implemented Interfaces:
Constants

public final class SanityRootTraceLocal
extends TraceLocal

This class implements the parallel root-gathering part of a sanity check.


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
SanityRootTraceLocal(Trace trace)
          Constructor
 
Method Summary
 void completeTrace()
          Finishing processing all GC work.
 void copyRootValuesTo(TraceLocal trace)
          Copy root values across to the 'real' single-threaded trace that will do the sanity checking.
 void processRoots()
          Process delayed roots.
 ObjectReference traceObject(ObjectReference object, boolean root)
          Trace a root object, i.e. root must be true.
 boolean willNotMoveInCurrentCollection(ObjectReference object)
          Will this object move from this point on, during the current trace ?
 
Methods inherited from class org.mmtk.plan.TraceLocal
flush, getForwardedFinalizable, getForwardedReference, getForwardedReferenceType, getForwardedReferent, incrementalTrace, isLive, isReachable, isReferentLive, logMessage, overwriteReferenceDuringTrace, prepare, processEdge, processInteriorEdge, processNode, processRememberedSets, processRootEdge, 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

SanityRootTraceLocal

public SanityRootTraceLocal(Trace trace)
Constructor

Method Detail

copyRootValuesTo

public void copyRootValuesTo(TraceLocal trace)
Copy root values across to the 'real' single-threaded trace that will do the sanity checking.


processRoots

public void processRoots()
Process delayed roots. This does not make sense for SanityRootTraceLocal. are empty.

Overrides:
processRoots in class TraceLocal

completeTrace

public void completeTrace()
Finishing processing all GC work. This does not make sense for SanityRootTraceLocal.

Overrides:
completeTrace in class TraceLocal

traceObject

public ObjectReference traceObject(ObjectReference object,
                                   boolean root)
Trace a root object, i.e. root must be true.

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)
Will this object move from this point on, during the current trace ?

Overrides:
willNotMoveInCurrentCollection in class TraceLocal
Parameters:
object - The object to query.
Returns:
true if the object will not move.