public class ObjectScanner extends Object
ObjectScanner.ReusableSet).| Modifier and Type | Class and Description |
|---|---|
static class |
ObjectScanner.ArrayScan |
static class |
ObjectScanner.EmbeddedRootScan |
static class |
ObjectScanner.FieldScan |
static class |
ObjectScanner.OtherReason |
static class |
ObjectScanner.ReusableSet
This datastructure keeps track if an object was already put or not atomically.
|
static class |
ObjectScanner.ScanReason |
| Constructor and Description |
|---|
ObjectScanner(BigBang bb,
CompletionExecutor executor,
ObjectScanner.ReusableSet scannedObjects,
ObjectScanningObserver scanningObserver) |
ObjectScanner(BigBang bb,
ObjectScanner.ReusableSet scannedObjects,
ObjectScanningObserver scanningObserver) |
ObjectScanner(BigBang bb,
ObjectScanningObserver scanningObserver) |
| Modifier and Type | Method and Description |
|---|---|
protected static AnalysisType |
analysisType(BigBang bb,
Object constant) |
static String |
asString(BigBang bb,
JavaConstant constant) |
static String |
asString(BigBang bb,
JavaConstant constant,
boolean appendToString) |
static AnalysisMethod |
buildObjectBacktrace(BigBang bb,
ObjectScanner.ScanReason reason,
StringBuilder objectBacktrace) |
static AnalysisMethod |
buildObjectBacktrace(BigBang bb,
ObjectScanner.ScanReason reason,
StringBuilder objectBacktrace,
String header) |
static Object |
constantAsObject(BigBang bb,
JavaConstant constant) |
static AnalysisType |
constantType(BigBang bb,
JavaConstant constant) |
protected void |
finish()
Process all consequences for scanned fields.
|
static String |
limit(String value,
int length) |
protected void |
scanArray(JavaConstant array,
ObjectScanner.ScanReason prevReason)
Scans constant arrays, one element at the time.
|
void |
scanBootImageHeapRoots() |
void |
scanBootImageHeapRoots(Comparator<AnalysisField> fieldComparator,
Comparator<BytecodePosition> embeddedRootComparator) |
void |
scanConstant(JavaConstant value,
ObjectScanner.ScanReason reason) |
protected void |
scanField(AnalysisField field,
JavaConstant receiver,
ObjectScanner.ScanReason prevReason)
Scans the value of a field giving a receiver object.
|
protected void |
scanRootField(AnalysisField field)
Scans the value of a root field.
|
protected final BigBang bb
public ObjectScanner(BigBang bb, ObjectScanningObserver scanningObserver)
public ObjectScanner(BigBang bb, ObjectScanner.ReusableSet scannedObjects, ObjectScanningObserver scanningObserver)
public ObjectScanner(BigBang bb, CompletionExecutor executor, ObjectScanner.ReusableSet scannedObjects, ObjectScanningObserver scanningObserver)
public void scanBootImageHeapRoots()
public void scanBootImageHeapRoots(Comparator<AnalysisField> fieldComparator, Comparator<BytecodePosition> embeddedRootComparator)
protected final void scanRootField(AnalysisField field)
field - the scanned root fieldprotected final void scanField(AnalysisField field, JavaConstant receiver, ObjectScanner.ScanReason prevReason)
field - the scanned fieldreceiver - the receiver objectprotected final void scanArray(JavaConstant array,
ObjectScanner.ScanReason prevReason)
array - the array to be scannedpublic final void scanConstant(JavaConstant value,
ObjectScanner.ScanReason reason)
public static AnalysisMethod buildObjectBacktrace(BigBang bb, ObjectScanner.ScanReason reason, StringBuilder objectBacktrace)
public static AnalysisMethod buildObjectBacktrace(BigBang bb, ObjectScanner.ScanReason reason, StringBuilder objectBacktrace, String header)
protected void finish()
exec, to mitigate the calling overhead.
Processing fields can issue new fields to be scanned so we always add the check for workitems
at the end of the worklist.protected static AnalysisType analysisType(BigBang bb, Object constant)
public static AnalysisType constantType(BigBang bb, JavaConstant constant)