Modifier and Type | Method and Description |
---|---|
static void |
VM.sysWrite(ObjectReference o) |
static void |
VM.sysWrite(String s,
ObjectReference r) |
static void |
VM.sysWriteln(ObjectReference o) |
static void |
VM.sysWriteln(String s,
ObjectReference r) |
static void |
VM.write(ObjectReference object) |
static void |
VM.writeHex(ObjectReference value) |
Modifier and Type | Method and Description |
---|---|
private static void |
BaselineMagic.check(ObjectReference value)
Method called to check an object reference is valid
|
Modifier and Type | Method and Description |
---|---|
static Address |
MemoryManager.allocateSpace(CollectorContext context,
int bytes,
int align,
int offset,
int allocator,
ObjectReference from)
Allocate space for GC-time copying of an object
|
static void |
DebugUtil.dumpRef(ObjectReference ref) |
static void |
MemoryManager.dumpRef(ObjectReference ref)
Logs information about a reference to the error output.
|
static int |
AlignmentEncoding.getTibCode(ObjectReference object)
Extract the encoded value from an object's TIB pointer
|
static boolean |
DebugUtil.mappedVMRef(ObjectReference ref) |
static boolean |
MemoryManager.mightBeTIB(ObjectReference obj)
Check if object might be a TIB.
|
static boolean |
MemoryManager.objectInVM(ObjectReference object)
Checks if a reference refers to an object in an in-use area of
memory.
|
static boolean |
DebugUtil.validRef(ObjectReference ref) |
static boolean |
MemoryManager.validRef(ObjectReference ref)
Checks if a reference is valid.
|
static boolean |
DebugUtil.validType(ObjectReference typeAddress)
Check if an address appears to point to an instance of RVMType
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
ObjectModel.copy(ObjectReference from,
int allocator) |
private ObjectReference |
ObjectModel.copyArray(ObjectReference from,
TIB tib,
RVMArray type,
int allocator) |
private ObjectReference |
ObjectModel.copyScalar(ObjectReference from,
TIB tib,
RVMClass type,
int allocator) |
ObjectReference |
TraceInterface.getLink(ObjectReference ref) |
ObjectReference |
ObjectModel.getNextObject(ObjectReference object) |
ObjectReference |
ObjectModel.getObjectFromStartAddress(Address start) |
private ObjectReference |
ReferenceProcessor.getReference(int i)
Retrieve from the reference table
|
ObjectReference |
ObjectModel.getReferenceWhenCopiedTo(ObjectReference from,
Address to) |
protected ObjectReference |
ReferenceProcessor.getReferent(ObjectReference object)
Get the referent from a reference.
|
ObjectReference |
Barriers.objectReferenceAtomicWrite(ObjectReference objref,
ObjectReference target,
Word offset,
Word unused,
int mode)
Atomically write a reference field of an object or array and return
the old value of the reference field.
|
ObjectReference |
Barriers.objectReferenceRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of an object reference read barrier.
|
ObjectReference |
ReferenceProcessor.processReference(TraceLocal trace,
ObjectReference reference)
Processes a reference with the current semantics.
|
Modifier and Type | Method and Description |
---|---|
private void |
ReferenceProcessor.addCandidate(Reference<?> ref,
ObjectReference referent)
Add a reference to the list of references.
|
static void |
ReferenceProcessor.addPhantomCandidate(PhantomReference<?> ref,
ObjectReference referent)
Add a reference to the list of phantom references.
|
private void |
ReferenceProcessor.addReference(Reference<?> ref,
ObjectReference referent)
Add a reference at the end of the table
|
Address |
Barriers.addressRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Address.
|
boolean |
Barriers.addressTryCompareAndSwap(ObjectReference objref,
Address expected,
Address newValue,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
Barriers.addressWrite(ObjectReference ref,
Address target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Address.
|
static void |
ReferenceProcessor.addSoftCandidate(SoftReference<?> ref,
ObjectReference referent)
Add a reference to the list of soft references.
|
static void |
ReferenceProcessor.addWeakCandidate(WeakReference<?> ref,
ObjectReference referent)
Add a reference to the list of weak references.
|
Offset |
TraceInterface.adjustSlotOffset(boolean isScalar,
ObjectReference src,
Address slot) |
boolean |
ObjectModel.attemptAvailableBits(ObjectReference object,
Word oldVal,
Word newVal) |
boolean |
Barriers.booleanRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a boolean read barrier.
|
void |
Barriers.booleanWrite(ObjectReference objref,
boolean value,
Word offset,
Word location,
int mode)
Perform the actual write of a boolean write barrier.
|
byte |
Barriers.byteRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a byte read barrier.
|
void |
Barriers.byteWrite(ObjectReference objref,
byte value,
Word offset,
Word location,
int mode)
Perform the actual write of a byte write barrier.
|
char |
Barriers.charRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a char read barrier.
|
void |
Barriers.charWrite(ObjectReference objref,
char value,
Word offset,
Word location,
int mode)
Perform the actual write of a char write barrier.
|
protected void |
ReferenceProcessor.clearReferent(ObjectReference newReference)
Weak and soft references always clear the referent
before enqueueing.
|
ObjectReference |
ObjectModel.copy(ObjectReference from,
int allocator) |
private ObjectReference |
ObjectModel.copyArray(ObjectReference from,
TIB tib,
RVMArray type,
int allocator) |
private ObjectReference |
ObjectModel.copyScalar(ObjectReference from,
TIB tib,
RVMClass type,
int allocator) |
Address |
ObjectModel.copyTo(ObjectReference from,
ObjectReference to,
Address region) |
double |
Barriers.doubleRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a double read barrier.
|
void |
Barriers.doubleWrite(ObjectReference objref,
double value,
Word offset,
Word location,
int mode)
Perform the actual write of a double write barrier.
|
void |
ObjectModel.dumpObject(ObjectReference object) |
boolean |
ReferenceProcessor.enqueueReference(ObjectReference addr)
Put this Reference object on its ReferenceQueue (if it has one)
when its referent is no longer sufficiently reachable.
|
Extent |
Barriers.extentRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Extent.
|
void |
Barriers.extentWrite(ObjectReference ref,
Extent target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Extent.
|
float |
Barriers.floatRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a float read barrier.
|
void |
Barriers.floatWrite(ObjectReference objref,
float value,
Word offset,
Word location,
int mode)
Perform the actual write of a float write barrier.
|
int |
ObjectModel.getAlignOffsetWhenCopied(ObjectReference object) |
int |
ObjectModel.getAlignWhenCopied(ObjectReference object) |
int |
ObjectModel.getArrayLength(ObjectReference object) |
int |
ObjectModel.getCurrentSize(ObjectReference object) |
Word |
TraceInterface.getDeathTime(ObjectReference ref) |
ObjectReference |
TraceInterface.getLink(ObjectReference ref) |
ObjectReference |
ObjectModel.getNextObject(ObjectReference object) |
Address |
ObjectModel.getObjectEndAddress(ObjectReference object) |
(package private) static int |
ObjectModel.getObjectSize(ObjectReference object)
Return the size of a given object, in bytes
|
Word |
TraceInterface.getOID(ObjectReference ref) |
ObjectReference |
ObjectModel.getReferenceWhenCopiedTo(ObjectReference from,
Address to) |
protected ObjectReference |
ReferenceProcessor.getReferent(ObjectReference object)
Get the referent from a reference.
|
int |
ObjectModel.getSizeWhenCopied(ObjectReference object) |
byte[] |
ObjectModel.getTypeDescriptor(ObjectReference ref) |
int |
Barriers.intRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a int read barrier.
|
boolean |
Barriers.intTryCompareAndSwap(ObjectReference objref,
int expected,
int newValue,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
Barriers.intWrite(ObjectReference objref,
int value,
Word offset,
Word location,
int mode)
Perform the actual write of a int write barrier.
|
boolean |
ObjectModel.isAcyclic(ObjectReference typeRef) |
boolean |
ObjectModel.isArray(ObjectReference object) |
boolean |
ObjectModel.isPrimitiveArray(ObjectReference object) |
long |
Barriers.longRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a long read barrier.
|
boolean |
Barriers.longTryCompareAndSwap(ObjectReference objref,
long expected,
long newValue,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
Barriers.longWrite(ObjectReference objref,
long value,
Word offset,
Word location,
int mode)
Perform the actual write of a long write barrier.
|
ObjectReference |
Barriers.objectReferenceAtomicWrite(ObjectReference objref,
ObjectReference target,
Word offset,
Word unused,
int mode)
Atomically write a reference field of an object or array and return
the old value of the reference field.
|
void |
Barriers.objectReferenceNonHeapWrite(Address slot,
ObjectReference target,
Word unusedA,
Word unusedB)
Perform the actual write of the non-heap write barrier.
|
ObjectReference |
Barriers.objectReferenceRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of an object reference read barrier.
|
boolean |
Barriers.objectReferenceTryCompareAndSwap(ObjectReference objref,
ObjectReference old,
ObjectReference target,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
Barriers.objectReferenceWrite(ObjectReference objref,
ObjectReference value,
Word offset,
Word location,
int mode)
Perform the actual write of an object reference write barrier.
|
Address |
ObjectModel.objectStartRef(ObjectReference object) |
Offset |
Barriers.offsetRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Offset.
|
void |
Barriers.offsetWrite(ObjectReference ref,
Offset target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Offset.
|
Word |
ObjectModel.prepareAvailableBits(ObjectReference object) |
private void |
ScanThread.processCodeLocation(ObjectReference code,
Address ipLoc)
Push a code pointer location onto the code locations deque,
optionally performing a sanity check first.
|
ObjectReference |
ReferenceProcessor.processReference(TraceLocal trace,
ObjectReference reference)
Processes a reference with the current semantics.
|
private void |
ScanThread.pushFrameIP(ObjectReference code,
int verbosity)
Push the instruction pointer associated with this frame onto the
code locations deque.
|
Word |
ObjectModel.readAvailableBitsWord(ObjectReference object) |
byte |
ObjectModel.readAvailableByte(ObjectReference object) |
Address |
ObjectModel.refToAddress(ObjectReference object) |
protected void |
ReferenceProcessor.retainReferent(TraceLocal trace,
ObjectReference reference)
This method deals only with soft references.
|
private void |
ScanThread.scanFrameForCode(ObjectReference code)
Scan this frame for internal code pointers.
|
void |
Scanning.scanObject(TransitiveClosure trace,
ObjectReference object)
Scanning of a object, processing each pointer field encountered.
|
void |
ObjectModel.setAvailableBit(ObjectReference object,
int idx,
boolean flag)
Sets a bit available for memory manager use in an object.
|
void |
TraceInterface.setDeathTime(ObjectReference ref,
Word time_) |
void |
TraceInterface.setLink(ObjectReference ref,
ObjectReference link) |
private void |
ReferenceProcessor.setReference(int i,
ObjectReference ref)
Update the reference table
|
protected void |
ReferenceProcessor.setReferent(ObjectReference ref,
ObjectReference referent)
Set the referent in a reference.
|
short |
Barriers.shortRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a short read barrier.
|
void |
Barriers.shortWrite(ObjectReference objref,
short value,
Word offset,
Word location,
int mode)
Perform the actual write of a short write barrier.
|
Address |
TraceInterface.skipOwnFramesAndDump(ObjectReference typeRef) |
void |
Scanning.specializedScanObject(int id,
TransitiveClosure trace,
ObjectReference object) |
boolean |
ObjectModel.testAvailableBit(ObjectReference object,
int idx)
Tests a bit available for memory manager use in an object.
|
void |
TraceInterface.updateDeathTime(ObjectReference obj)
Update an object's death time.
|
Word |
Barriers.wordAtomicWrite(ObjectReference ref,
Word target,
Word offset,
Word unused,
int mode)
Atomically write a raw reference field of an object or array and return
the old value of the reference field.
|
Word |
Barriers.wordRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Word.
|
boolean |
Barriers.wordTryCompareAndSwap(ObjectReference ref,
Word old,
Word target,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
Barriers.wordWrite(ObjectReference ref,
Word target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Word.
|
void |
ObjectModel.writeAvailableBitsWord(ObjectReference object,
Word val) |
void |
ObjectModel.writeAvailableByte(ObjectReference object,
byte val) |
Modifier and Type | Method and Description |
---|---|
static ObjectReference |
JavaHeader.getArrayFromStartAddress(Address start)
Gets an object reference from the address the lowest word of the
object was allocated.
|
static ObjectReference |
ObjectModel.getArrayFromStartAddress(Address start)
Gets an object reference from the address the lowest word of the object was allocated.
|
static ObjectReference |
MiscHeader.getLink(Object ref) |
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj) |
protected static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
int size)
Get the next object in the heap under contiguous
allocation.
|
static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
RVMArray type,
int numElements)
Get the next array in the heap under contiguous
allocation.
|
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj,
RVMArray type,
int numElements)
Get the next object after this array under contiguous allocation.
|
static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
RVMClass type)
Get the next object in the heap under contiguous
allocation.
|
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj,
RVMClass type)
Gets the next object after this scalar under contiguous allocation.
|
static ObjectReference |
JavaHeader.getObjectFromStartAddress(Address start)
Get an object reference from the address the lowest word of the
object was allocated.
|
static ObjectReference |
ObjectModel.getObjectFromStartAddress(Address start)
Get an object reference from the address the lowest word of the object was allocated.
|
static ObjectReference |
JavaHeader.getScalarFromStartAddress(Address start)
Gets an object reference from the address the lowest word of the
object was allocated.
|
static ObjectReference |
ObjectModel.getScalarFromStartAddress(Address start)
Gets an object reference from the address the lowest word of the object was allocated.
|
Modifier and Type | Method and Description |
---|---|
static void |
ObjectModel.describeObject(ObjectReference addr)
For debugging: dumps descriptor of an object.
|
static void |
ObjectModel.dumpHeader(ObjectReference ptr)
For low level debugging of GC subsystem.
|
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj) |
protected static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
int size)
Get the next object in the heap under contiguous
allocation.
|
static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
RVMArray type,
int numElements)
Get the next array in the heap under contiguous
allocation.
|
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj,
RVMArray type,
int numElements)
Get the next object after this array under contiguous allocation.
|
static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
RVMClass type)
Get the next object in the heap under contiguous
allocation.
|
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj,
RVMClass type)
Gets the next object after this scalar under contiguous allocation.
|
static int |
JavaHeader.getOffsetForAlignment(RVMArray t,
ObjectReference obj) |
static int |
ObjectModel.getOffsetForAlignment(RVMArray t,
ObjectReference obj) |
static int |
JavaHeader.getOffsetForAlignment(RVMClass t,
ObjectReference obj) |
static int |
ObjectModel.getOffsetForAlignment(RVMClass t,
ObjectReference obj) |
static Address |
JavaHeader.getPointerInMemoryRegion(ObjectReference ref)
Given a reference, return an address which is guaranteed to be inside
the memory region allocated to the object.
|
static Address |
ObjectModel.getPointerInMemoryRegion(ObjectReference ref)
Given a reference, return an address which is guaranteed to be inside
the memory region allocated to the object.
|
static TIB |
ObjectModel.getTIB(ObjectReference ptr) |
static Address |
JavaHeader.objectStartRef(ObjectReference obj)
Maps from the object ref to the lowest address of the storage
associated with the object.
|
static Address |
ObjectModel.objectStartRef(ObjectReference obj)
Maps from the object ref to the lowest address of the storage
associated with the object.
|
static void |
MiscHeader.setLink(Object object,
ObjectReference link) |
static void |
ObjectModel.setTIB(ObjectReference ptr,
TIB tib) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
TraceLocal.getForwardedFinalizable(ObjectReference object)
If a Finalizable object has moved, return the new location.
|
ObjectReference |
TraceLocal.getForwardedReference(ObjectReference object)
If the referenced object has moved, return the new location.
|
ObjectReference |
TraceLocal.getForwardedReferenceType(ObjectReference object)
If the Reference Type object has moved, return the new location.
|
ObjectReference |
TraceLocal.getForwardedReferent(ObjectReference object)
If the reference object (from a Reference Type) has object has moved,
return the new location.
|
ObjectReference |
MutatorContext.javaLangReferenceReadBarrier(ObjectReference referent)
Read a reference type.
|
ObjectReference |
Plan.loadObjectReference(Address slot)
Load an object reference
|
ObjectReference |
MutatorContext.objectReferenceNonHeapRead(Address slot,
Word metaDataA,
Word metaDataB)
Read an object reference.
|
ObjectReference |
MutatorContext.objectReferenceRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read an object reference.
|
ObjectReference |
TraceLocal.retainForFinalize(ObjectReference object)
An object is unreachable and is about to be added to the
finalizable queue.
|
ObjectReference |
TraceLocal.retainReferent(ObjectReference object)
Make alive a referent object that is known not to be live
(isLive is false).
|
ObjectReference |
TraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
ObjectReference |
TraceLocal.traceObject(ObjectReference object,
boolean root)
This method traces an object with knowledge of the fact that object
is a root or not.
|
Modifier and Type | Method and Description |
---|---|
boolean |
MutatorContext.addressBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of Addresse's are about to be copied from object
src to object dst (as in an array
copy). |
Address |
MutatorContext.addressRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read an Address.
|
boolean |
MutatorContext.addressTryCompareAndSwap(ObjectReference src,
Address slot,
Address old,
Address value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
MutatorContext.addressWrite(ObjectReference src,
Address slot,
Address value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Address.
|
Address |
CollectorContext.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
MutatorContext.booleanBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of booleans are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
MutatorContext.booleanRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a boolean.
|
void |
MutatorContext.booleanWrite(ObjectReference src,
Address slot,
boolean value,
Word metaDataA,
Word metaDataB,
int mode)
Write a boolean.
|
boolean |
MutatorContext.byteBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of bytes are about to be copied from object
src to object dst (as in an array
copy). |
byte |
MutatorContext.byteRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a byte.
|
void |
MutatorContext.byteWrite(ObjectReference src,
Address slot,
byte value,
Word metaDataA,
Word metaDataB,
int mode)
Write a byte.
|
boolean |
MutatorContext.charBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of chars are about to be copied from object
src to object dst (as in an array
copy). |
char |
MutatorContext.charRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a char.
|
void |
MutatorContext.charWrite(ObjectReference src,
Address slot,
char value,
Word metaDataA,
Word metaDataB,
int mode)
Write a char.
|
int |
CollectorContext.copyCheckAllocator(ObjectReference from,
int bytes,
int align,
int allocator)
Run-time check of the allocator to use for a given copy allocation.
|
boolean |
MutatorContext.doubleBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of doubles are about to be copied from object
src to object dst (as in an array
copy). |
double |
MutatorContext.doubleRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a double.
|
void |
MutatorContext.doubleWrite(ObjectReference src,
Address slot,
double value,
Word metaDataA,
Word metaDataB,
int mode)
Write a double.
|
boolean |
MutatorContext.extentBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of Extents are about to be copied from object
src to object dst (as in an array
copy). |
Extent |
MutatorContext.extentRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read an Extent.
|
void |
MutatorContext.extentWrite(ObjectReference src,
Address slot,
Extent value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Extent.
|
boolean |
MutatorContext.floatBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of floats are about to be copied from object
src to object dst (as in an array
copy). |
float |
MutatorContext.floatRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a float.
|
void |
MutatorContext.floatWrite(ObjectReference src,
Address slot,
float value,
Word metaDataA,
Word metaDataB,
int mode)
Write a float.
|
ObjectReference |
TraceLocal.getForwardedFinalizable(ObjectReference object)
If a Finalizable object has moved, return the new location.
|
ObjectReference |
TraceLocal.getForwardedReference(ObjectReference object)
If the referenced object has moved, return the new location.
|
ObjectReference |
TraceLocal.getForwardedReferenceType(ObjectReference object)
If the Reference Type object has moved, return the new location.
|
ObjectReference |
TraceLocal.getForwardedReferent(ObjectReference object)
If the reference object (from a Reference Type) has object has moved,
return the new location.
|
boolean |
MutatorContext.intBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of ints are about to be copied from object
src to object dst (as in an array
copy). |
int |
MutatorContext.intRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a int.
|
boolean |
MutatorContext.intTryCompareAndSwap(ObjectReference src,
Address slot,
int old,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
MutatorContext.intWrite(ObjectReference src,
Address slot,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Write a int.
|
boolean |
TraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
boolean |
TraceLocal.isReachable(ObjectReference object)
Is the specified object reachable?
|
boolean |
TraceLocal.isReferentLive(ObjectReference object)
Is the specified referent of a reference type object live?
|
ObjectReference |
MutatorContext.javaLangReferenceReadBarrier(ObjectReference referent)
Read a reference type.
|
boolean |
MutatorContext.longBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of longs are about to be copied from object
src to object dst (as in an array
copy). |
long |
MutatorContext.longRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a long.
|
boolean |
MutatorContext.longTryCompareAndSwap(ObjectReference src,
Address slot,
long old,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
MutatorContext.longWrite(ObjectReference src,
Address slot,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Write a long.
|
boolean |
MutatorContext.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
void |
MutatorContext.objectReferenceNonHeapWrite(Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB)
A new reference is about to be created in a location that is not
a regular heap object.
|
ObjectReference |
MutatorContext.objectReferenceRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read an object reference.
|
boolean |
MutatorContext.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
MutatorContext.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference value,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
boolean |
MutatorContext.offsetBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of Offsets are about to be copied from object
src to object dst (as in an array
copy). |
Offset |
MutatorContext.offsetRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read an Offset.
|
void |
MutatorContext.offsetWrite(ObjectReference src,
Address slot,
Offset value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Offset.
|
void |
MutatorContext.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
void |
CollectorContext.postCopy(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions.
|
void |
TraceLocal.processEdge(ObjectReference source,
Address slot)
Trace a reference during GC.
|
void |
TransitiveClosure.processEdge(ObjectReference source,
Address slot)
Trace an edge during GC.
|
void |
TraceLocal.processInteriorEdge(ObjectReference target,
Address slot,
boolean root)
Trace a reference during GC.
|
void |
TraceLocal.processNode(ObjectReference object)
Add a gray object
|
void |
TransitiveClosure.processNode(ObjectReference object)
Trace a node during GC.
|
void |
TraceWriteBuffer.processNode(ObjectReference object)
Enqueue an object during a trace.
|
boolean |
TraceLocal.readyToFinalize(ObjectReference object)
Return true if an object is ready to move to the finalizable
queue, i.e. it has no regular references to it.
|
ObjectReference |
TraceLocal.retainForFinalize(ObjectReference object)
An object is unreachable and is about to be added to the
finalizable queue.
|
ObjectReference |
TraceLocal.retainReferent(ObjectReference object)
Make alive a referent object that is known not to be live
(isLive is false).
|
int |
Plan.sanityExpectedRC(ObjectReference object,
int sanityRootRC)
Return the expected reference count.
|
protected void |
TraceLocal.scanObject(ObjectReference object)
Collectors that move objects must override this method.
|
byte |
Plan.setBuildTimeGCByte(Address object,
ObjectReference typeRef,
int size)
Performs any required initialization of the GC portion of the header.
|
boolean |
MutatorContext.shortBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of shorts are about to be copied from object
src to object dst (as in an array
copy). |
short |
MutatorContext.shortRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a short.
|
void |
MutatorContext.shortWrite(ObjectReference src,
Address slot,
short value,
Word metaDataA,
Word metaDataB,
int mode)
Write a short.
|
void |
Plan.storeObjectReference(Address slot,
ObjectReference value)
Store an object reference
|
ObjectReference |
TraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
ObjectReference |
TraceLocal.traceObject(ObjectReference object,
boolean root)
This method traces an object with knowledge of the fact that object
is a root or not.
|
boolean |
Plan.willNeverMove(ObjectReference object)
Can this object ever move.
|
boolean |
TraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Ensure that the referenced object will not move from this point through
to the end of the collection.
|
boolean |
MutatorContext.wordBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of Words are about to be copied from object
src to object dst (as in an array
copy). |
Word |
MutatorContext.wordRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode)
Read a Word.
|
boolean |
MutatorContext.wordTryCompareAndSwap(ObjectReference src,
Address slot,
Word old,
Word value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
MutatorContext.wordWrite(ObjectReference src,
Address slot,
Word value,
Word metaDataA,
Word metaDataB,
int mode)
Write a Word.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
ConcurrentMutator.javaLangReferenceReadBarrier(ObjectReference ref) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
ConcurrentMutator.checkAndEnqueueReference(ObjectReference ref)
Process a reference that may require being enqueued as part of a concurrent
collection.
|
ObjectReference |
ConcurrentMutator.javaLangReferenceReadBarrier(ObjectReference ref) |
boolean |
ConcurrentMutator.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
ConcurrentMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode) |
void |
ConcurrentMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
CMSTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
protected void |
CMSMutator.checkAndEnqueueReference(ObjectReference ref)
Process a reference that may require being enqueued as part of a concurrent
collection.
|
boolean |
CMSTraceLocal.isLive(ObjectReference object) |
void |
CMSMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
ObjectReference |
CMSTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
CMS.willNeverMove(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
CopyMSTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
Address |
CopyMSCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
CopyMSTraceLocal.isLive(ObjectReference object)
Is the specified object reachable?
|
void |
CopyMSMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
void |
CopyMSCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
int |
CopyMS.sanityExpectedRC(ObjectReference object,
int sanityRootRC) |
ObjectReference |
CopyMSTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
CopyMSTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current collection ?
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GenNurseryTraceLocal.traceObject(ObjectReference object) |
ObjectReference |
GenMatureTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
private void |
GenMutator.fastPath(Address slot,
ObjectReference tgt)
Perform the root write barrier fast path, which may involve remembering
a reference if necessary.
|
private void |
GenMutator.fastPath(ObjectReference src,
Address slot,
ObjectReference tgt,
int mode)
Perform the write barrier fast path, which may involve remembering
a reference if necessary.
|
(package private) static boolean |
Gen.inNursery(ObjectReference obj)
Return
true if the object resides within the nursery |
boolean |
GenNurseryTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
boolean |
GenMatureTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
boolean |
GenMutator.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
void |
GenMutator.objectReferenceNonHeapWrite(Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB)
A new reference is about to be created in a location that is not
a regular heap object.
|
boolean |
GenMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
GenMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
void |
GenMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator) |
int |
Gen.sanityExpectedRC(ObjectReference object,
int sanityRootRC) |
ObjectReference |
GenNurseryTraceLocal.traceObject(ObjectReference object) |
ObjectReference |
GenMatureTraceLocal.traceObject(ObjectReference object) |
boolean |
Gen.willNeverMove(ObjectReference object) |
boolean |
GenNurseryTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will the object move from now on during the collection.
|
boolean |
GenMatureTraceLocal.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). |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GenCopyMatureTraceLocal.traceObject(ObjectReference object)
Trace a reference into the mature space during GC.
|
Modifier and Type | Method and Description |
---|---|
Address |
GenCopyCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
GenCopyMatureTraceLocal.isLive(ObjectReference object) |
void |
GenCopyMutator.postAlloc(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
void |
GenCopyCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions.
|
ObjectReference |
GenCopyMatureTraceLocal.traceObject(ObjectReference object)
Trace a reference into the mature space during GC.
|
boolean |
GenCopyMatureTraceLocal.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). |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GenImmixMatureTraceLocal.traceObject(ObjectReference object) |
ObjectReference |
GenImmixMatureDefragTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
Address |
GenImmixCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
GenImmixMatureTraceLocal.isLive(ObjectReference object) |
boolean |
GenImmixMatureDefragTraceLocal.isLive(ObjectReference object) |
void |
GenImmixMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator) |
void |
GenImmixCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
protected void |
GenImmixMatureTraceLocal.scanObject(ObjectReference object) |
protected void |
GenImmixMatureDefragTraceLocal.scanObject(ObjectReference object) |
ObjectReference |
GenImmixMatureTraceLocal.traceObject(ObjectReference object) |
ObjectReference |
GenImmixMatureDefragTraceLocal.traceObject(ObjectReference object) |
boolean |
GenImmix.willNeverMove(ObjectReference object) |
boolean |
GenImmixMatureTraceLocal.willNotMoveInCurrentCollection(ObjectReference object) |
boolean |
GenImmixMatureDefragTraceLocal.willNotMoveInCurrentCollection(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GenMSMatureTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
Address |
GenMSCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
GenMSMatureTraceLocal.isLive(ObjectReference object) |
void |
GenMSMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator) |
void |
GenMSCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
ObjectReference |
GenMSMatureTraceLocal.traceObject(ObjectReference object) |
boolean |
GenMS.willNeverMove(ObjectReference object) |
boolean |
GenMSMatureTraceLocal.willNotMoveInCurrentCollection(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
ImmixDefragTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
ObjectReference |
ImmixTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
Address |
ImmixCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
ImmixDefragTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
boolean |
ImmixTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
void |
ImmixMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
void |
ImmixCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
protected void |
ImmixDefragTraceLocal.scanObject(ObjectReference object) |
protected void |
ImmixTraceLocal.scanObject(ObjectReference object) |
ObjectReference |
ImmixDefragTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
ObjectReference |
ImmixTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
Immix.willNeverMove(ObjectReference object) |
boolean |
ImmixDefragTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Return
true if this object is guaranteed not to move during this
collection (i.e. this object is defintely not an unforwarded
object). |
boolean |
ImmixTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Ensure that the referenced object will not move from this point through
to the end of the collection.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
MCForwardTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
ObjectReference |
MCMarkTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
boolean |
MCForwardTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
boolean |
MCMarkTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
void |
MCMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
int |
MC.sanityExpectedRC(ObjectReference object,
int sanityRootRC) |
ObjectReference |
MCForwardTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
ObjectReference |
MCMarkTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
MC.willNeverMove(ObjectReference object) |
boolean |
MCForwardTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current trace ?
|
boolean |
MCMarkTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current trace ?
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
MSTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
boolean |
MSTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
void |
MSMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
ObjectReference |
MSTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
MS.willNeverMove(ObjectReference object)
Can this object ever move.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
NoGCTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
boolean |
NoGCTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
void |
NoGCMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator) |
ObjectReference |
NoGCTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
static ObjectReference |
Poisoned.depoison(Word value)
DePoisons a reference value.
|
ObjectReference |
Poisoned.loadObjectReference(Address slot) |
ObjectReference |
PoisonedMutator.objectReferenceRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
PoisonedMutator.objectReferenceRead(ObjectReference src,
Address slot,
Word metaDataA,
Word metaDataB,
int mode) |
boolean |
PoisonedMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode) |
void |
PoisonedMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
static Word |
Poisoned.poison(ObjectReference reference)
Poisons a reference value.
|
void |
Poisoned.storeObjectReference(Address slot,
ObjectReference value)
Store an object reference
|
Modifier and Type | Method and Description |
---|---|
static boolean |
RCHeader.attemptToLog(ObjectReference object)
Attempt to log
object for coalescing RC. |
static void |
RCHeader.clearMarked(ObjectReference object)
Clears the mark status for the given object.
|
private void |
RCBaseMutator.coalescingWriteBarrierSlow(ObjectReference srcObj)
Slow path of the coalescing write barrier.
|
static int |
RCHeader.decRC(ObjectReference object)
Decrement the reference count of an object.
|
static int |
RCHeader.getRC(ObjectReference object)
Return the reference count for the object.
|
static int |
RCHeader.incRC(ObjectReference object)
Increment the reference count of an object.
|
static void |
RCHeader.initializeHeader(ObjectReference object,
boolean initialInc)
Perform any required initialization of the GC portion of the header.
|
static int |
RCHeader.initRC(ObjectReference object)
Initialize the reference count of an object.
|
static boolean |
RCHeader.isLiveRC(ObjectReference object)
Return
true if given object is live |
static boolean |
RCHeader.isMarked(ObjectReference object) |
static boolean |
RCHeader.isNew(ObjectReference object) |
static boolean |
RCBase.isRCObject(ObjectReference object) |
static boolean |
RCHeader.logRequired(ObjectReference object)
Return
true if object is yet to be logged (for
coalescing RC). |
static void |
RCHeader.makeLogged(ObjectReference object)
Signify completion of logging
object . |
static void |
RCHeader.makeUnlogged(ObjectReference object)
Change
object 's state to UNLOGGED . |
boolean |
RCBaseMutator.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
RCBaseMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode) |
void |
RCBaseMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
void |
RCBaseMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator) |
protected void |
RCDecBuffer.process(ObjectReference object) |
void |
RCZero.processEdge(ObjectReference source,
Address slot) |
static int |
RCHeader.remainRC(ObjectReference object)
Retain the reference count of an object.
|
int |
RCBase.sanityExpectedRC(ObjectReference object,
int sanityRootRC) |
byte |
RCBase.setBuildTimeGCByte(Address object,
ObjectReference typeRef,
int size) |
static boolean |
RCHeader.testAndMark(ObjectReference object)
Attempts to atomically mark this object.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
BTTraceLocal.traceObject(ObjectReference object)
When we trace a non-root object we do nothing.
|
Modifier and Type | Method and Description |
---|---|
boolean |
BTTraceLocal.isLive(ObjectReference object)
Is the specified object reachable?
|
void |
BTSweepImmortalScanner.scan(ObjectReference object)
Scan an object during sweep.
|
boolean |
BTSweeper.sweepCell(ObjectReference object) |
boolean |
BTFreeLargeObjectSweeper.sweepLargeObject(ObjectReference object) |
ObjectReference |
BTTraceLocal.traceObject(ObjectReference object)
When we trace a non-root object we do nothing.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
RCFindRootSetTraceLocal.traceObject(ObjectReference object)
When we trace a non-root object we do nothing.
|
ObjectReference |
RCFindRootSetTraceLocal.traceObject(ObjectReference object,
boolean root)
When we trace a root object we remember it.
|
Modifier and Type | Method and Description |
---|---|
boolean |
RCFindRootSetTraceLocal.isLive(ObjectReference object)
Is the specified object reachable?
|
void |
RCModifiedProcessor.processEdge(ObjectReference source,
Address slot) |
ObjectReference |
RCFindRootSetTraceLocal.traceObject(ObjectReference object)
When we trace a non-root object we do nothing.
|
ObjectReference |
RCFindRootSetTraceLocal.traceObject(ObjectReference object,
boolean root)
When we trace a root object we remember it.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GenRCFindRootSetTraceLocal.traceObject(ObjectReference object)
When we trace a non-root object we do nothing.
|
ObjectReference |
GenRCFindRootSetTraceLocal.traceObject(ObjectReference object,
boolean root)
When we trace a root object we remember it.
|
Modifier and Type | Method and Description |
---|---|
Address |
GenRCCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
GenRCFindRootSetTraceLocal.isLive(ObjectReference object)
Is the specified object reachable?
|
void |
GenRCMutator.postAlloc(ObjectReference ref,
ObjectReference typeRef,
int bytes,
int allocator) |
void |
GenRCCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform any post-copy actions.
|
void |
GenRCModifiedProcessor.processEdge(ObjectReference source,
Address slot) |
ObjectReference |
GenRCFindRootSetTraceLocal.traceObject(ObjectReference object)
When we trace a non-root object we do nothing.
|
ObjectReference |
GenRCFindRootSetTraceLocal.traceObject(ObjectReference object,
boolean root)
When we trace a root object we remember it.
|
boolean |
GenRC.willNeverMove(ObjectReference object) |
boolean |
GenRCFindRootSetTraceLocal.willNotMoveInCurrentCollection(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
SSTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
Address |
SSCollector.allocCopy(ObjectReference original,
int bytes,
int align,
int offset,
int allocator)
Allocate space for copying an object (this method does not
copy the object, it only allocates space)
|
boolean |
SSTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
static boolean |
SSCollector.isSemiSpaceObject(ObjectReference object)
Return
true if the given reference is to an object that is within
one of the semi-spaces. |
void |
SSMutator.postAlloc(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
void |
SSCollector.postCopy(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
ObjectReference |
SSTraceLocal.traceObject(ObjectReference object) |
boolean |
SS.willNeverMove(ObjectReference object) |
boolean |
SSTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current trace ?
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
SSGCspyTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
void |
SSGCspyMutator.postAlloc(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator) |
ObjectReference |
SSGCspyTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
boolean |
SSGCspyTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current trace ?
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GCTraceTraceLocal.getForwardedReference(ObjectReference object) |
ObjectReference |
GCTraceTraceLocal.traceObject(ObjectReference object)
Trace a reference during GC.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
GCTraceTraceLocal.getForwardedReference(ObjectReference object) |
boolean |
GCTraceTraceLocal.isLive(ObjectReference object) |
boolean |
GCTraceTraceLocal.isReachable(ObjectReference object)
Return true if
obj is a reachable object. |
boolean |
GCTraceMutator.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
GCTraceMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode) |
void |
GCTraceMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
void |
GCTraceMutator.postAlloc(ObjectReference object,
ObjectReference typeRef,
int bytes,
int allocator)
Perform post-allocation actions.
|
ObjectReference |
GCTraceTraceLocal.traceObject(ObjectReference object)
Trace a reference during GC.
|
boolean |
GCTraceTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Is this object guaranteed not to move during the collection.
|
Modifier and Type | Method and Description |
---|---|
boolean |
UsePrimitiveWriteBarriersMutator.addressTryCompareAndSwap(ObjectReference src,
Address slot,
Address old,
Address value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
UsePrimitiveWriteBarriersMutator.addressWrite(ObjectReference src,
Address slot,
Address value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Address.
|
boolean |
UsePrimitiveWriteBarriersMutator.booleanBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
void |
UsePrimitiveWriteBarriersMutator.booleanWrite(ObjectReference src,
Address slot,
boolean value,
Word metaDataA,
Word metaDataB,
int mode)
Write a boolean.
|
boolean |
UsePrimitiveWriteBarriersMutator.byteBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
void |
UsePrimitiveWriteBarriersMutator.byteWrite(ObjectReference src,
Address slot,
byte value,
Word metaDataA,
Word metaDataB,
int mode)
Write a byte.
|
boolean |
UsePrimitiveWriteBarriersMutator.charBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
void |
UsePrimitiveWriteBarriersMutator.charWrite(ObjectReference src,
Address slot,
char value,
Word metaDataA,
Word metaDataB,
int mode)
Write a char.
|
boolean |
UsePrimitiveWriteBarriersMutator.doubleBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
void |
UsePrimitiveWriteBarriersMutator.doubleWrite(ObjectReference src,
Address slot,
double value,
Word metaDataA,
Word metaDataB,
int mode)
Write a double.
|
void |
UsePrimitiveWriteBarriersMutator.extentWrite(ObjectReference src,
Address slot,
Extent value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Extent.
|
boolean |
UsePrimitiveWriteBarriersMutator.floatBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
void |
UsePrimitiveWriteBarriersMutator.floatWrite(ObjectReference src,
Address slot,
float value,
Word metaDataA,
Word metaDataB,
int mode)
Write a float.
|
boolean |
UsePrimitiveWriteBarriersMutator.intBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
boolean |
UsePrimitiveWriteBarriersMutator.intTryCompareAndSwap(ObjectReference src,
Address slot,
int old,
int value,
Word metaDataA,
Word metaDataB,
int mode) |
void |
UsePrimitiveWriteBarriersMutator.intWrite(ObjectReference src,
Address slot,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Write a int.
|
boolean |
UsePrimitiveWriteBarriersMutator.longBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
boolean |
UsePrimitiveWriteBarriersMutator.longTryCompareAndSwap(ObjectReference src,
Address slot,
long old,
long value,
Word metaDataA,
Word metaDataB,
int mode) |
void |
UsePrimitiveWriteBarriersMutator.longWrite(ObjectReference src,
Address slot,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Write a long.
|
void |
UsePrimitiveWriteBarriersMutator.offsetWrite(ObjectReference src,
Address slot,
Offset value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Offset.
|
boolean |
UsePrimitiveWriteBarriersMutator.shortBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes) |
void |
UsePrimitiveWriteBarriersMutator.shortWrite(ObjectReference src,
Address slot,
short value,
Word metaDataA,
Word metaDataB,
int mode)
Write a short.
|
boolean |
UsePrimitiveWriteBarriersMutator.wordTryCompareAndSwap(ObjectReference src,
Address slot,
Word old,
Word value,
Word metaDataA,
Word metaDataB,
int mode) |
void |
UsePrimitiveWriteBarriersMutator.wordWrite(ObjectReference src,
Address slot,
Word value,
Word metaDataA,
Word metaDataB,
int mode)
Write a Word.
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
StickyImmixNurseryTraceLocal.traceObject(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
boolean |
StickyImmixNurseryTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
private void |
StickyImmixMutator.logSource(ObjectReference src)
Add an object to the modified objects buffer and mark the
object has having been logged.
|
boolean |
StickyImmixMutator.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
StickyImmixMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode) |
void |
StickyImmixMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
protected void |
StickyImmixNurseryTraceLocal.scanObject(ObjectReference object) |
ObjectReference |
StickyImmixNurseryTraceLocal.traceObject(ObjectReference object) |
boolean |
StickyImmixNurseryTraceLocal.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). |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
StickyMSNurseryTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
boolean |
StickyMSNurseryTraceLocal.isLive(ObjectReference object)
Is the specified object live?
|
private void |
StickyMSMutator.logSource(ObjectReference src)
Add an object to the modified objects buffer and mark the
object has having been logged.
|
boolean |
StickyMSMutator.objectReferenceBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of references are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
StickyMSMutator.objectReferenceTryCompareAndSwap(ObjectReference src,
Address slot,
ObjectReference old,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode) |
void |
StickyMSMutator.objectReferenceWrite(ObjectReference src,
Address slot,
ObjectReference tgt,
Word metaDataA,
Word metaDataB,
int mode)
Write an object reference.
|
int |
StickyMS.sanityExpectedRC(ObjectReference object,
int sanityRootRC) |
ObjectReference |
StickyMSNurseryTraceLocal.traceObject(ObjectReference object)
This method is the core method during the trace of the object graph.
|
Modifier and Type | Method and Description |
---|---|
(package private) ObjectReference |
MarkCompactCollector.FromCursor.advanceToObject()
Advance from the cursor to the start of the next object.
|
static ObjectReference |
MarkCompactSpace.getForwardingPointer(ObjectReference object)
Non-atomic read of forwarding pointer
|
ObjectReference |
MarkCompactSpace.traceForwardObject(TraceLocal trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
ObjectReference |
MarkCompactSpace.traceMarkObject(TraceLocal trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
ObjectReference |
ExplicitLargeObjectSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
ImmortalSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under an immortal collection
policy.
|
ObjectReference |
RawPageSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object.
|
ObjectReference |
CopySpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
ObjectReference |
LargeObjectSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
ExplicitFreeListSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
MarkSweepSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
MarkCompactSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
abstract ObjectReference |
Space.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object as part of a collection and return the object,
which may have been forwarded (if a copying collector).
|
ObjectReference |
CopySpace.traceObject(TransitiveClosure trace,
ObjectReference object,
int allocator)
Trace an object under a copying collection policy.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
MarkCompactCollector.FromCursor.advanceToObjectEnd(ObjectReference current)
Advances the cursor to the end of the given object.
|
static void |
MarkCompactSpace.clearForwardingPointer(ObjectReference object)
Non-atomic clear of forwarding pointer word (assumption, thread
doing the set has done attempt to forward and owns the right to
copy the object)
|
protected static void |
SegregatedFreeListSpace.clearLiveBit(ObjectReference object)
Clear the live bit for a given object
|
static void |
MarkCompactSpace.clearMark(ObjectReference object) |
(package private) void |
MarkCompactCollector.ToCursor.copy(ObjectReference from,
ObjectReference to)
Copy an object to an address within this cursor's region.
|
void |
ExplicitLargeObjectSpace.free(ObjectReference object)
Free an object
|
void |
ExplicitFreeListSpace.free(ObjectReference object)
Free an object.
|
static ObjectReference |
MarkCompactSpace.getForwardingPointer(ObjectReference object)
Non-atomic read of forwarding pointer
|
static Space |
Space.getSpaceForObject(ObjectReference object)
Return the space for a given object
|
void |
ImmortalSpace.initializeHeader(ObjectReference object)
Initialize the object header post-allocation.
|
void |
MarkCompactSpace.initializeHeader(ObjectReference object)
Initialise the header of the object.
|
void |
ExplicitLargeObjectSpace.initializeHeader(ObjectReference object,
boolean alloc)
Perform any required initialization of the GC portion of the header.
|
void |
LargeObjectSpace.initializeHeader(ObjectReference object,
boolean alloc)
Perform any required initialization of the GC portion of the header.
|
void |
MarkSweepSpace.initializeHeader(ObjectReference object,
boolean alloc)
Perform any required initialization of the GC portion of the header.
|
private void |
LargeObjectSpace.internalMarkObject(ObjectReference object,
boolean nurseryObject)
An object has been marked (identifiged as live).
|
protected boolean |
SegregatedFreeListSpace.isCellLive(ObjectReference object)
In the cell containing this object live?
|
protected boolean |
MarkSweepSpace.isCellLive(ObjectReference object)
Should the sweep reclaim the cell containing this object.
|
static boolean |
Space.isImmortal(ObjectReference object)
Return
true if the given object is in an immortal (uncollected) space. |
private boolean |
LargeObjectSpace.isInNursery(ObjectReference object)
Return
true if the object is in the logical nursery |
(package private) boolean |
MarkCompactCollector.RegionCursor.isInRegion(ObjectReference ref) |
static boolean |
Space.isInSpace(int descriptor,
ObjectReference object)
Return
true if the given object is the space associated with the
given descriptor. |
boolean |
ExplicitLargeObjectSpace.isLive(ObjectReference object) |
boolean |
ImmortalSpace.isLive(ObjectReference object) |
boolean |
RawPageSpace.isLive(ObjectReference object) |
boolean |
CopySpace.isLive(ObjectReference object)
Return
true if this object is live in this GC |
boolean |
LargeObjectSpace.isLive(ObjectReference object) |
boolean |
ExplicitFreeListSpace.isLive(ObjectReference object) |
boolean |
MarkSweepSpace.isLive(ObjectReference object) |
boolean |
MarkCompactSpace.isLive(ObjectReference object) |
abstract boolean |
Space.isLive(ObjectReference object)
Is the object in this space alive?
|
static boolean |
Space.isMappedObject(ObjectReference object)
Return
true if the given object is in a space managed by MMTk. |
static boolean |
MarkCompactSpace.isMarked(ObjectReference object) |
static boolean |
Space.isMovable(ObjectReference object)
Return
true if the given object is in space that moves objects. |
boolean |
ImmortalSpace.isReachable(ObjectReference object)
Returns if the object in question is currently thought to be reachable.
|
boolean |
CopySpace.isReachable(ObjectReference object) |
boolean |
MarkCompactSpace.isReachable(ObjectReference object) |
boolean |
Space.isReachable(ObjectReference object)
Has the object in this space been reached during the current collection.
|
protected static boolean |
SegregatedFreeListSpace.liveBitSet(ObjectReference object) |
protected static void |
SegregatedFreeListSpace.markBlock(ObjectReference object)
Set the live bit for the block containing the given object
|
void |
CopySpace.postAlloc(ObjectReference object)
Perform any required post-allocation initialization
Nothing to be done in this case
|
void |
MarkSweepSpace.postAlloc(ObjectReference object)
Perform any required post allocation initialization
|
void |
MarkCompactSpace.postAlloc(ObjectReference object)
Perform any required post-allocation initialization
Nothing to be done in this case
|
void |
MarkSweepSpace.postCopy(ObjectReference object,
boolean majorGC)
Perform any required post copy (i.e. in-GC allocation) initialization.
|
protected boolean |
SegregatedFreeListSpace.reclaimCellForObject(ObjectReference object)
Should the sweep reclaim the cell containing this object.
|
static void |
MarkCompactSpace.setForwardingPointer(ObjectReference object,
ObjectReference ptr)
Non-atomic write of forwarding pointer word (assumption, thread
doing the set has done attempt to forward and owns the right to
copy the object)
|
abstract boolean |
SegregatedFreeListSpace.Sweeper.sweepCell(ObjectReference object) |
abstract boolean |
ExplicitLargeObjectSpace.Sweeper.sweepLargeObject(ObjectReference object) |
private static boolean |
MarkCompactSpace.testAndClearMark(ObjectReference object)
Used to mark boot image objects during a parallel scan of objects
during GC Returns true if marking was done.
|
private boolean |
MarkSweepSpace.testAndMark(ObjectReference object)
Atomically attempt to set the mark bit of an object.
|
static boolean |
MarkCompactSpace.testAndMark(ObjectReference object)
Used to mark boot image objects during a parallel scan of objects
during GC.
|
private static boolean |
ImmortalSpace.testAndMark(ObjectReference object,
byte value)
Used to mark boot image objects during a parallel scan of objects during GC.
|
private boolean |
LargeObjectSpace.testAndMark(ObjectReference object,
byte value)
Atomically attempt to set the mark bit of an object.
|
static boolean |
SegregatedFreeListSpace.testAndSetLiveBit(ObjectReference object)
Atomically set the live bit for a given object
|
private boolean |
LargeObjectSpace.testMarkBit(ObjectReference object,
byte value)
Return
true if the mark bit for an object has the given value. |
private boolean |
MarkSweepSpace.testMarkState(ObjectReference object)
Return true if the mark count for an object has the given value.
|
static boolean |
MarkCompactSpace.toBeCompacted(ObjectReference object) |
ObjectReference |
MarkCompactSpace.traceForwardObject(TraceLocal trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
ObjectReference |
MarkCompactSpace.traceMarkObject(TraceLocal trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
ObjectReference |
ExplicitLargeObjectSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
ImmortalSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under an immortal collection
policy.
|
ObjectReference |
RawPageSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object.
|
ObjectReference |
CopySpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
ObjectReference |
LargeObjectSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
ExplicitFreeListSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
MarkSweepSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object under a mark sweep collection
policy.
|
ObjectReference |
MarkCompactSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object under a copying collection policy.
|
abstract ObjectReference |
Space.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace an object as part of a collection and return the object,
which may have been forwarded (if a copying collector).
|
ObjectReference |
CopySpace.traceObject(TransitiveClosure trace,
ObjectReference object,
int allocator)
Trace an object under a copying collection policy.
|
protected static void |
SegregatedFreeListSpace.unsyncClearLiveBit(ObjectReference object)
Clear the live bit for a given object
|
static boolean |
SegregatedFreeListSpace.unsyncSetLiveBit(ObjectReference object)
Set the live bit for a given object, without using
synchronization primitives---must only be used when contention
for live bit is strictly not possible
|
Modifier and Type | Method and Description |
---|---|
ObjectReference |
ImmixSpace.fastTraceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object in the context of a non-moving collection.
|
ObjectReference |
ImmixSpace.nurseryTraceObject(TransitiveClosure trace,
ObjectReference object,
int allocator)
Trace a reference to an object during a nursery collection for
a sticky mark bits implementation of immix.
|
ObjectReference |
ImmixSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object.
|
ObjectReference |
ImmixSpace.traceObject(TransitiveClosure trace,
ObjectReference object,
int allocator)
Trace a reference to an object.
|
private ObjectReference |
ImmixSpace.traceObjectWithOpportunisticCopy(TransitiveClosure trace,
ObjectReference object,
int allocator,
boolean nurseryCollection)
Trace a reference to an object, forwarding the object if appropriate
If the object is not already marked, mark the object and enqueue it
for subsequent processing.
|
Modifier and Type | Method and Description |
---|---|
boolean |
ImmixSpace.copyNurseryIsLive(ObjectReference object)
Test the liveness of an object during copying sticky mark bits collection
|
boolean |
ImmixSpace.fastIsLive(ObjectReference object)
Test the liveness of an object during defragmentation
|
ObjectReference |
ImmixSpace.fastTraceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object in the context of a non-moving collection.
|
private boolean |
ImmixSpace.isDefragSource(ObjectReference object) |
boolean |
ImmixSpace.isLive(ObjectReference object)
Generic test of the liveness of an object
|
(package private) static boolean |
ObjectHeader.isMatureObject(ObjectReference object) |
(package private) static boolean |
ObjectHeader.isNewObject(ObjectReference object) |
(package private) static boolean |
ObjectHeader.isPinnedObject(ObjectReference object) |
(package private) static boolean |
ObjectHeader.isStraddlingObject(ObjectReference object) |
(package private) static void |
ObjectHeader.markAsStraddling(ObjectReference object) |
void |
ImmixSpace.markLines(ObjectReference object)
Mark the line/s associated with a given object.
|
(package private) static void |
Line.markMultiLine(Address start,
ObjectReference object,
byte markValue) |
ObjectReference |
ImmixSpace.nurseryTraceObject(TransitiveClosure trace,
ObjectReference object,
int allocator)
Trace a reference to an object during a nursery collection for
a sticky mark bits implementation of immix.
|
static void |
ObjectHeader.pinObject(ObjectReference object) |
void |
ImmixSpace.postAlloc(ObjectReference object,
int bytes)
Perform any required post allocation initialization
|
void |
ImmixSpace.postCopy(ObjectReference object,
int bytes,
boolean majorGC)
Perform any required post copy (i.e. in-GC allocation) initialization.
|
(package private) static void |
ObjectHeader.returnToPriorStateAndEnsureUnlogged(ObjectReference object,
byte status) |
(package private) static void |
ObjectHeader.setMarkStateUnlogAndUnlock(ObjectReference object,
byte gcByte,
byte markState) |
(package private) static byte |
ObjectHeader.testAndMark(ObjectReference object,
byte markState)
Non-atomically test and set the mark bit of an object.
|
(package private) static boolean |
ObjectHeader.testMarkState(ObjectReference object,
byte value)
Return
true if the mark count for an object has the given value. |
ObjectReference |
ImmixSpace.traceObject(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object.
|
ObjectReference |
ImmixSpace.traceObject(TransitiveClosure trace,
ObjectReference object,
int allocator)
Trace a reference to an object.
|
private ObjectReference |
ImmixSpace.traceObjectWithOpportunisticCopy(TransitiveClosure trace,
ObjectReference object,
int allocator,
boolean nurseryCollection)
Trace a reference to an object, forwarding the object if appropriate
If the object is not already marked, mark the object and enqueue it
for subsequent processing.
|
private void |
ImmixSpace.traceObjectWithoutMoving(TransitiveClosure trace,
ObjectReference object)
Trace a reference to an object in the context of a non-moving collection.
|
boolean |
ImmixSpace.willNotMoveThisGC(ObjectReference object) |
boolean |
ImmixSpace.willNotMoveThisNurseryGC(ObjectReference object) |
(package private) static void |
ObjectHeader.writeMarkState(ObjectReference object,
byte markState,
boolean straddle)
Write the allocState into the mark state fields of an object non-atomically.
|
Modifier and Type | Method and Description |
---|---|
static ObjectReference |
ForwardingWord.extractForwardingPointer(Word forwardingWord) |
static ObjectReference |
ForwardingWord.forwardObject(ObjectReference object,
int allocator) |
static ObjectReference |
ForwardingWord.spinAndGetForwardedObject(ObjectReference object,
Word statusWord) |
Modifier and Type | Method and Description |
---|---|
static void |
TraceGenerator.addTraceObject(ObjectReference ref,
int linkSpace)
Add a newly allocated object into the linked list of objects in a region.
|
static Word |
ForwardingWord.attemptToForward(ObjectReference object)
Either return the forwarding pointer if the object is already
forwarded (or being forwarded) or write the bit pattern that
indicates that the object is being forwarded
|
static void |
ForwardingWord.clearForwardingBits(ObjectReference object)
Clear the GC forwarding portion of the header for an object.
|
static ObjectReference |
ForwardingWord.forwardObject(ObjectReference object,
int allocator) |
static boolean |
ForwardingWord.isForwarded(ObjectReference object)
Has an object been forwarded?
|
static boolean |
ForwardingWord.isForwardedOrBeingForwarded(ObjectReference object)
Has an object been forwarded or is it being forwarded?
|
static boolean |
HeaderByte.isUnlogged(ObjectReference object)
Return
true if the specified object needs to be logged. |
static void |
HeaderByte.markAsLogged(ObjectReference object)
Mark an object as logged.
|
static void |
HeaderByte.markAsUnlogged(ObjectReference object) |
(package private) abstract void |
CycleDetector.possibleCycleRoot(ObjectReference object) |
static void |
TraceGenerator.processPointerUpdate(boolean isScalar,
ObjectReference src,
Address slot,
ObjectReference tgt)
Do any tracing work required at each a pointer store operation.
|
static void |
TraceGenerator.propagateDeathTime(ObjectReference ref)
This propagates the death time being computed to the object passed as an
address.
|
static void |
TraceGenerator.rootEnumerate(ObjectReference obj)
This method is called for each root-referenced object at every Merlin
root enumeration.
|
static void |
ForwardingWord.setForwardingPointer(ObjectReference object,
ObjectReference ptr)
Non-atomic write of forwarding pointer word (assumption, thread
doing the set has done attempt to forward and owns the right to
copy the object)
|
static ObjectReference |
ForwardingWord.spinAndGetForwardedObject(ObjectReference object,
Word statusWord) |
static void |
TraceGenerator.traceAlloc(boolean isImmortal,
ObjectReference ref,
ObjectReference typeRef,
int bytes)
Do any tracing work required at each object allocation.
|
static void |
Log.write(ObjectReference o)
writes an object reference, in hexadecimal.
|
static void |
Log.writeln(ObjectReference o)
writes an object reference, in hexadecimal, and a new-line, then
flushes the buffer.
|
static void |
Log.writeln(ObjectReference o,
boolean flush)
writes an object reference, in hexadecimal, and a new-line, then
optionally flushes the buffer.
|
Modifier and Type | Method and Description |
---|---|
static void |
BlockAllocator.markBlockMeta(ObjectReference ref)
Marks the metadata for this block.
|
abstract void |
LinearScan.scan(ObjectReference object)
Scan an object.
|
void |
DumpLinearScan.scan(ObjectReference object) |
Modifier and Type | Method and Description |
---|---|
ObjectReference |
SortTODObjectReferenceStack.pop()
Pop an address from the address stack, return zero if the stack
is empty.
|
ObjectReference |
ObjectReferenceDeque.pop()
Pop an object from the object queue, return zero if the queue
is empty.
|
ObjectReference |
ObjectReferenceBuffer.pop()
Retrieves an object.
|
Modifier and Type | Method and Description |
---|---|
void |
ObjectReferenceDeque.insert(ObjectReference object)
Insert an object into the object queue.
|
protected abstract void |
ObjectReferenceBuffer.process(ObjectReference object)
This is the method that ensures
|
void |
ObjectReferenceBuffer.processChildren(ObjectReference object)
Process each of the child objects for the passed object.
|
void |
ObjectReferenceBuffer.processEdge(ObjectReference source,
Address slot) |
void |
SortTODObjectReferenceStack.push(ObjectReference object)
Push an address onto the address stack.
|
void |
ObjectReferenceDeque.push(ObjectReference object)
Push an object onto the object queue.
|
void |
ObjectReferenceBuffer.push(ObjectReference object)
Pushes an object onto the queue, forcing an inlined sequence.
|
void |
ObjectReferenceDeque.pushOOL(ObjectReference object)
Push an object onto the object queue, force this out of line
("OOL"), in some circumstances it is too expensive to have the
push inlined, so this call is made.
|
void |
ObjectReferenceBuffer.pushOOL(ObjectReference object)
Pushes an object onto the queue, forcing an out of line sequence.
|
Modifier and Type | Method and Description |
---|---|
void |
LinearScan.scan(ObjectReference obj)
Scan an object.
|
Modifier and Type | Method and Description |
---|---|
void |
ImmortalSpaceDriver.Closure.processEdge(ObjectReference source,
Address slot)
Process an edge.
|
void |
AbstractDriver.scan(ObjectReference obj)
Scan an object found at a location.
|
void |
LinearSpaceDriver.scan(ObjectReference obj)
Update the tile statistics
|
void |
AbstractDriver.scan(ObjectReference obj,
boolean total)
Scan an object found at a location.
|
void |
LinearSpaceDriver.scan(ObjectReference obj,
boolean total)
Update the tile statistics
|
void |
ImmortalSpaceDriver.scan(ObjectReference object,
boolean total)
Update the tile statistics.
|
protected boolean |
LinearSpaceDriver.scanCheckPrimitiveArray(ObjectReference obj,
int index,
boolean total,
int length)
Check if this Object is an array of primitives.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
Mmapper.objectIsMapped(ObjectReference object)
Return
true if the given object has been mmapped |
Modifier and Type | Method and Description |
---|---|
static ObjectReference |
SanityDataTable.getObjectReference(Address entry)
Given an address of an entry, read the reference component.
|
ObjectReference |
SanityRootTraceLocal.traceObject(ObjectReference object,
boolean root)
Trace a root object, i.e. root must be
true . |
ObjectReference |
SanityTraceLocal.traceObject(ObjectReference object,
boolean root)
This method traces an object with knowledge of the fact that object
is a root or not.
|
Modifier and Type | Method and Description |
---|---|
static void |
SanityChecker.dumpObjectInformation(ObjectReference object)
Print out object information (used for warning and error messages)
|
Address |
SanityDataTable.getEntry(ObjectReference object,
boolean create)
Get an entry for an object.
|
void |
SanityChecker.processObject(TraceLocal trace,
ObjectReference object,
boolean root)
Process an object during sanity checking, validating data,
incrementing counters and enqueuing if this is the first
visit to the object.
|
void |
SanityLinearScan.scan(ObjectReference object) |
void |
SanityChecker.scanProcessObject(ObjectReference object)
Process an object during a linear scan of the heap.
|
ObjectReference |
SanityRootTraceLocal.traceObject(ObjectReference object,
boolean root)
Trace a root object, i.e. root must be
true . |
ObjectReference |
SanityTraceLocal.traceObject(ObjectReference object,
boolean root)
This method traces an object with knowledge of the fact that object
is a root or not.
|
boolean |
SanityRootTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current trace ?
|
boolean |
SanityTraceLocal.willNotMoveInCurrentCollection(ObjectReference object)
Will this object move from this point on, during the current trace?
|
Modifier and Type | Method and Description |
---|---|
abstract ObjectReference |
ObjectModel.copy(ObjectReference from,
int allocator)
Copy an object using a plan's allocCopy to get space and install
the forwarding pointer.
|
abstract ObjectReference |
TraceInterface.getLink(ObjectReference ref) |
abstract ObjectReference |
ObjectModel.getNextObject(ObjectReference object) |
abstract ObjectReference |
ObjectModel.getObjectFromStartAddress(Address start) |
abstract ObjectReference |
ObjectModel.getReferenceWhenCopiedTo(ObjectReference from,
Address to)
Return the reference that an object will be referred to after it is copied
to the specified region.
|
abstract ObjectReference |
Barriers.objectReferenceAtomicWrite(ObjectReference ref,
ObjectReference target,
Word metaDataA,
Word metaDataB,
int mode)
Atomically write a reference field of an object or array and return
the old value of the reference field.
|
abstract ObjectReference |
Barriers.objectReferenceRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a read barrier.
|
Modifier and Type | Method and Description |
---|---|
abstract Address |
Barriers.addressRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Address.
|
abstract boolean |
Barriers.addressTryCompareAndSwap(ObjectReference ref,
Address old,
Address target,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
Barriers.addressWrite(ObjectReference ref,
Address target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Address.
|
abstract Offset |
TraceInterface.adjustSlotOffset(boolean isScalar,
ObjectReference src,
Address slot)
This adjusts the offset into an object to reflect what it would look like
if the fields were laid out in memory space immediately after the object
pointer.
|
abstract boolean |
ObjectModel.attemptAvailableBits(ObjectReference object,
Word oldVal,
Word newVal)
Attempts to set the bits available for memory manager use in an
object.
|
abstract boolean |
Barriers.booleanRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a boolean read barrier.
|
abstract void |
Barriers.booleanWrite(ObjectReference ref,
boolean value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a boolean write barrier.
|
abstract byte |
Barriers.byteRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a byte read barrier.
|
abstract void |
Barriers.byteWrite(ObjectReference ref,
byte value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a byte write barrier.
|
abstract char |
Barriers.charRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a char read barrier.
|
abstract void |
Barriers.charWrite(ObjectReference ref,
char value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a char write barrier.
|
abstract ObjectReference |
ObjectModel.copy(ObjectReference from,
int allocator)
Copy an object using a plan's allocCopy to get space and install
the forwarding pointer.
|
abstract Address |
ObjectModel.copyTo(ObjectReference from,
ObjectReference to,
Address region)
Copy an object to be pointer to by the to address.
|
abstract double |
Barriers.doubleRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a double read barrier.
|
abstract void |
Barriers.doubleWrite(ObjectReference ref,
double value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a double write barrier.
|
abstract void |
ObjectModel.dumpObject(ObjectReference object)
Dump debugging information for an object.
|
abstract Extent |
Barriers.extentRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Extent.
|
abstract void |
Barriers.extentWrite(ObjectReference ref,
Extent target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Extent.
|
abstract float |
Barriers.floatRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a float read barrier.
|
abstract void |
Barriers.floatWrite(ObjectReference ref,
float value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a float write barrier.
|
abstract int |
ObjectModel.getAlignOffsetWhenCopied(ObjectReference object)
Return the alignment offset requirements for a copy of this object
|
abstract int |
ObjectModel.getAlignWhenCopied(ObjectReference object)
Return the alignment requirement for a copy of this object
|
abstract int |
ObjectModel.getArrayLength(ObjectReference object)
Get the length of an array object.
|
abstract int |
ObjectModel.getCurrentSize(ObjectReference object)
Return the size used by an object
|
abstract Word |
TraceInterface.getDeathTime(ObjectReference ref) |
abstract ObjectReference |
TraceInterface.getLink(ObjectReference ref) |
abstract ObjectReference |
ObjectModel.getNextObject(ObjectReference object) |
abstract Address |
ObjectModel.getObjectEndAddress(ObjectReference object)
Gets a pointer to the address just past the end of the object.
|
abstract Word |
TraceInterface.getOID(ObjectReference ref) |
abstract ObjectReference |
ObjectModel.getReferenceWhenCopiedTo(ObjectReference from,
Address to)
Return the reference that an object will be referred to after it is copied
to the specified region.
|
abstract int |
ObjectModel.getSizeWhenCopied(ObjectReference object)
Return the size required to copy an object
|
abstract byte[] |
ObjectModel.getTypeDescriptor(ObjectReference ref)
Get the type descriptor for an object.
|
abstract int |
Barriers.intRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a int read barrier.
|
abstract boolean |
Barriers.intTryCompareAndSwap(ObjectReference objref,
int old,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
Barriers.intWrite(ObjectReference ref,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a int write barrier.
|
abstract boolean |
ObjectModel.isAcyclic(ObjectReference typeRef)
Checks if a reference of the given type in another object is
inherently acyclic.
|
abstract boolean |
ObjectModel.isArray(ObjectReference object) |
abstract boolean |
ObjectModel.isPrimitiveArray(ObjectReference object) |
abstract long |
Barriers.longRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a long read barrier.
|
abstract boolean |
Barriers.longTryCompareAndSwap(ObjectReference objref,
long old,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
Barriers.longWrite(ObjectReference ref,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a long write barrier.
|
void |
Debug.modbufEntry(ObjectReference object)
A modbuf (object remembering barrier) entry has been
traced during collection.
|
abstract ObjectReference |
Barriers.objectReferenceAtomicWrite(ObjectReference ref,
ObjectReference target,
Word metaDataA,
Word metaDataB,
int mode)
Atomically write a reference field of an object or array and return
the old value of the reference field.
|
abstract void |
Barriers.objectReferenceNonHeapWrite(Address slot,
ObjectReference target,
Word metaDataA,
Word metaDataB)
Perform the actual write of the non-heap write barrier.
|
abstract ObjectReference |
Barriers.objectReferenceRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a read barrier.
|
abstract boolean |
Barriers.objectReferenceTryCompareAndSwap(ObjectReference ref,
ObjectReference old,
ObjectReference target,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
Barriers.objectReferenceWrite(ObjectReference ref,
ObjectReference value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of an object reference write barrier.
|
abstract Address |
ObjectModel.objectStartRef(ObjectReference object)
Returns the lowest address of the storage associated with an object.
|
abstract Offset |
Barriers.offsetRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Offset.
|
abstract void |
Barriers.offsetWrite(ObjectReference ref,
Offset target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Offset.
|
abstract Word |
ObjectModel.prepareAvailableBits(ObjectReference object)
Gets the value of bits available for memory manager use in an
object, in preparation for setting those bits.
|
abstract Word |
ObjectModel.readAvailableBitsWord(ObjectReference object)
Read the bits available for memory manager use in an object.
|
abstract byte |
ObjectModel.readAvailableByte(ObjectReference object)
Read the byte available for memory manager use in an object.
|
abstract Address |
ObjectModel.refToAddress(ObjectReference object)
Returns an address guaranteed to be inside the storage assocatied
with and object.
|
abstract void |
Scanning.scanObject(TransitiveClosure trace,
ObjectReference object)
Delegated scanning of a object, processing each pointer field
encountered.
|
abstract void |
TraceInterface.setDeathTime(ObjectReference ref,
Word time_) |
abstract void |
TraceInterface.setLink(ObjectReference ref,
ObjectReference link) |
abstract short |
Barriers.shortRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a short read barrier.
|
abstract void |
Barriers.shortWrite(ObjectReference ref,
short value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a short write barrier.
|
abstract Address |
TraceInterface.skipOwnFramesAndDump(ObjectReference typeRef)
This skips over the frames added by the tracing algorithm, outputs
information identifying the method the containts the "new" call triggering
the allocation, and returns the address of the first non-trace, non-alloc
stack frame.
|
abstract void |
Scanning.specializedScanObject(int id,
TransitiveClosure trace,
ObjectReference object)
Invoke a specialized scan method.
|
void |
Debug.traceObject(TraceLocal trace,
ObjectReference object)
Trace an object during GC
*** Non-standard, requires plumbing into a collector during debugging ***
|
abstract void |
TraceInterface.updateDeathTime(ObjectReference obj)
Update an object's death time.
|
abstract Word |
Barriers.wordAtomicWrite(ObjectReference ref,
Word rawTarget,
Word metaDataA,
Word metaDataB,
int mode)
Atomically write a Word field of an object or array and return
the old value of the Word field.
|
abstract Word |
Barriers.wordRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Word.
|
abstract boolean |
Barriers.wordTryCompareAndSwap(ObjectReference ref,
Word old,
Word target,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
Barriers.wordWrite(ObjectReference ref,
Word target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Word.
|
abstract void |
ObjectModel.writeAvailableBitsWord(ObjectReference object,
Word val)
Sets the bits available for memory manager use in an object.
|
abstract void |
ObjectModel.writeAvailableByte(ObjectReference object,
byte val)
Sets the byte available for memory manager use in an object.
|
Modifier and Type | Method and Description |
---|---|
static ObjectReference |
ObjectReference.fromObject(Object obj)
Convert from an object to a reference.
|
ObjectReference |
ObjectReferenceArray.get(int index) |
ObjectReference |
Address.loadObjectReference()
Loads a reference from the memory location pointed to by the
current instance.
|
ObjectReference |
Address.loadObjectReference(Offset offset)
Loads a reference from the memory location pointed to by the
current instance.
|
static ObjectReference |
ObjectReference.nullReference() |
ObjectReference |
Address.prepareObjectReference()
Prepare for an atomic store operation.
|
ObjectReference |
Address.prepareObjectReference(Offset offset)
Prepare for an atomic store operation.
|
ObjectReference |
Address.toObjectReference()
Fabricate an
ObjectReference instance from an
Address instance. |
Modifier and Type | Method and Description |
---|---|
boolean |
Address.attempt(ObjectReference old,
ObjectReference value)
Attempt an atomic store operation.
|
boolean |
Address.attempt(ObjectReference old,
ObjectReference value,
Offset offset)
Attempt an atomic store operation.
|
void |
ObjectReferenceArray.set(int index,
ObjectReference v) |
void |
Address.store(ObjectReference value)
Stores the address value in the memory location pointed to by the
current instance.
|
void |
Address.store(ObjectReference value,
Offset offset)
Stores the object reference value in the memory location pointed
to by the current instance.
|