public final class ImmixTraceLocal extends TraceLocal
Modifier and Type | Field and Description |
---|---|
private ObjectReferenceDeque |
modBuffer
Instance fields
|
rootLocations, values
specializedScan
Constructor and Description |
---|
ImmixTraceLocal(Trace trace,
ObjectReferenceDeque modBuffer)
Constructor
|
Modifier and Type | Method and Description |
---|---|
boolean |
isLive(ObjectReference object)
Is the specified object live?
|
protected void |
processRememberedSets()
Process any remembered set entries.
|
protected void |
scanObject(ObjectReference object)
Collectors that move objects must override this method.
|
ObjectReference |
traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
willNotMoveInCurrentCollection(ObjectReference object)
Ensure that the referenced object will not move from this point through
to the end of the collection.
|
completeTrace, flush, getForwardedFinalizable, getForwardedReference, getForwardedReferenceType, getForwardedReferent, incrementalTrace, isReachable, isReferentLive, logMessage, overwriteReferenceDuringTrace, prepare, processEdge, processInteriorEdge, processNode, processRootEdge, processRoots, readyToFinalize, release, reportDelayedRootEdge, retainForFinalize, retainReferent, traceObject
getSpecializedScanClass, registerSpecializedScan
private final ObjectReferenceDeque modBuffer
public ImmixTraceLocal(Trace trace, ObjectReferenceDeque modBuffer)
trace
- The trace associated with this trace local.modBuffer
- The modified objects buffer associated with this trace local. Possibly null.public boolean isLive(ObjectReference object)
isLive
in class TraceLocal
object
- The object.true
if the object is live.public ObjectReference traceObject(ObjectReference object)
In this instance, we refer objects in the mark-sweep space to the immixSpace for tracing, and defer to the superclass for all others.
traceObject
in class TraceLocal
object
- The object to be traced.public boolean willNotMoveInCurrentCollection(ObjectReference object)
willNotMoveInCurrentCollection
in class TraceLocal
object
- The object that must not move during the collection.true
If the object will not move during collectionprotected void scanObject(ObjectReference object)
TraceLocal
scanObject
in class TraceLocal
object
- The forwarded object to be scannedprotected void processRememberedSets()
processRememberedSets
in class TraceLocal