public abstract class ObjectScanner extends Object
| Modifier and Type | Field and Description |
|---|---|
protected BigBang |
bb |
protected Map<Object,Boolean> |
scannedObjects |
protected Deque<com.oracle.graal.pointsto.ObjectScanner.WorklistEntry> |
worklist |
| Constructor and Description |
|---|
ObjectScanner(BigBang bigbang) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
finish() |
abstract void |
forNonNullArrayElement(jdk.vm.ci.meta.JavaConstant array,
AnalysisType arrayType,
jdk.vm.ci.meta.JavaConstant elementConstant,
AnalysisType elementType,
int elementIndex)
Hook for scanned non-null element value.
|
abstract void |
forNonNullFieldValue(jdk.vm.ci.meta.JavaConstant receiver,
AnalysisField field,
jdk.vm.ci.meta.JavaConstant fieldValue)
Hook for scanned non-null field value.
|
abstract void |
forNullArrayElement(jdk.vm.ci.meta.JavaConstant array,
AnalysisType arrayType,
int elementIndex)
Hook for scanned null element value.
|
abstract void |
forNullFieldValue(jdk.vm.ci.meta.JavaConstant receiver,
AnalysisField field)
Hook for scanned null field value.
|
abstract void |
forRelocatedPointerFieldValue(jdk.vm.ci.meta.JavaConstant receiver,
AnalysisField field,
jdk.vm.ci.meta.JavaConstant fieldValue)
Hook for relocated pointer scanned field value.
|
protected abstract void |
forScannedConstant(jdk.vm.ci.meta.JavaConstant scannedValue,
Object reason)
Hook for scanned constant.
|
protected void |
scanArray(jdk.vm.ci.meta.JavaConstant array,
Object reason)
Scans constant arrays, one element at the time.
|
void |
scanBootImageHeapRoots() |
void |
scanBootImageHeapRoots(Comparator<AnalysisField> fieldComparator,
Comparator<AnalysisMethod> methodComparator) |
void |
scanConstant(jdk.vm.ci.meta.JavaConstant value,
Object reason) |
protected void |
scanField(AnalysisField field,
jdk.vm.ci.meta.JavaConstant receiver,
Object reason)
Scans the value of a field giving a receiver object.
|
protected final BigBang bb
protected final Deque<com.oracle.graal.pointsto.ObjectScanner.WorklistEntry> worklist
public ObjectScanner(BigBang bigbang)
public void scanBootImageHeapRoots()
public void scanBootImageHeapRoots(Comparator<AnalysisField> fieldComparator, Comparator<AnalysisMethod> methodComparator)
public abstract void forRelocatedPointerFieldValue(jdk.vm.ci.meta.JavaConstant receiver,
AnalysisField field,
jdk.vm.ci.meta.JavaConstant fieldValue)
public abstract void forNullFieldValue(jdk.vm.ci.meta.JavaConstant receiver,
AnalysisField field)
public abstract void forNonNullFieldValue(jdk.vm.ci.meta.JavaConstant receiver,
AnalysisField field,
jdk.vm.ci.meta.JavaConstant fieldValue)
protected final void scanField(AnalysisField field, jdk.vm.ci.meta.JavaConstant receiver, Object reason)
field - the scanned fieldreceiver - the receiver objectreason - what triggered the scanningpublic abstract void forNullArrayElement(jdk.vm.ci.meta.JavaConstant array,
AnalysisType arrayType,
int elementIndex)
public abstract void forNonNullArrayElement(jdk.vm.ci.meta.JavaConstant array,
AnalysisType arrayType,
jdk.vm.ci.meta.JavaConstant elementConstant,
AnalysisType elementType,
int elementIndex)
protected final void scanArray(jdk.vm.ci.meta.JavaConstant array,
Object reason)
array - the array to be scannedreason - what triggered the scanningprotected abstract void forScannedConstant(jdk.vm.ci.meta.JavaConstant scannedValue,
Object reason)
public final void scanConstant(jdk.vm.ci.meta.JavaConstant value,
Object reason)
protected void finish()