Modifier and Type | Class and Description |
---|---|
static class |
Analyzer.FailureException
This exception is thrown by verify() when it fails.
|
static class |
Analyzer.PathElement |
class |
Analyzer.TypeVisitor |
Modifier and Type | Field and Description |
---|---|
protected int[][] |
backEdges |
protected BitSet |
basicBlockStarts |
protected String |
classType |
protected ExceptionHandler[][] |
handlers |
protected ClassHierarchyProvider |
hierarchy |
protected IInstruction[] |
instructions |
protected int[] |
instToBC |
protected boolean |
isConstructor |
protected boolean |
isStatic |
protected String[][] |
locals |
protected int |
maxLocals |
protected int |
maxStack |
protected static int[] |
noEdges |
protected static String[] |
noStrings |
protected String |
signature |
protected String[][] |
stacks |
protected int[] |
stackSizes |
static String |
thisType |
static String |
topType |
protected String[][] |
varTypes |
Modifier | Constructor and Description |
---|---|
|
Analyzer(boolean isConstructor,
boolean isStatic,
String classType,
String signature,
IInstruction[] instructions,
ExceptionHandler[][] handlers,
int[] instToBC,
String[][] vars) |
protected |
Analyzer(MethodData info) |
protected |
Analyzer(MethodData info,
int[] instToBC,
String[][] vars) |
Modifier and Type | Method and Description |
---|---|
void |
computeTypes(Analyzer.TypeVisitor v,
BitSet makeTypesAt,
boolean wantPath)
Verify the method and compute types at every program point.
|
static Analyzer |
createAnalyzer(MethodData info) |
String |
findCommonSupertype(String t1,
String t2) |
int[][] |
getBackEdges() |
BitSet |
getBasicBlockStarts() |
IInstruction[] |
getInstructions() |
String[][] |
getLocalTypes() |
BitSet |
getReachableFrom(int from) |
BitSet |
getReachableFrom(int from,
boolean followHandlers,
BitSet mask) |
void |
getReachableFromUpdate(int from,
BitSet reachable,
boolean followHandlers,
BitSet mask) |
void |
getReachingToUpdate(int to,
BitSet reaching,
BitSet mask) |
int[] |
getStackSizes() |
String[][] |
getStackTypes() |
protected void |
initTypeInfo() |
boolean |
isSubtypeOf(String t1,
String t2) |
void |
setClassHierarchy(ClassHierarchyProvider h)
Use class hierarchy information in 'h'.
|
static String |
stripSharp(String type) |
public static final String thisType
public static final String topType
protected final boolean isConstructor
protected final boolean isStatic
protected final String classType
protected final String signature
protected final IInstruction[] instructions
protected final ExceptionHandler[][] handlers
protected ClassHierarchyProvider hierarchy
protected int maxStack
protected int maxLocals
protected String[][] stacks
protected String[][] locals
protected int[] stackSizes
protected BitSet basicBlockStarts
protected int[][] backEdges
protected int[] instToBC
protected String[][] varTypes
protected static final String[] noStrings
protected static final int[] noEdges
public Analyzer(boolean isConstructor, boolean isStatic, String classType, String signature, IInstruction[] instructions, ExceptionHandler[][] handlers, int[] instToBC, String[][] vars)
protected Analyzer(MethodData info)
protected Analyzer(MethodData info, int[] instToBC, String[][] vars)
public final void setClassHierarchy(ClassHierarchyProvider h)
public final int[][] getBackEdges()
public final BitSet getBasicBlockStarts()
public final IInstruction[] getInstructions()
public final BitSet getReachableFrom(int from)
public final void getReachableFromUpdate(int from, BitSet reachable, boolean followHandlers, BitSet mask)
public final BitSet getReachableFrom(int from, boolean followHandlers, BitSet mask)
public int[] getStackSizes() throws Analyzer.FailureException
Analyzer.FailureException
protected final void initTypeInfo() throws Analyzer.FailureException
Analyzer.FailureException
public final void computeTypes(Analyzer.TypeVisitor v, BitSet makeTypesAt, boolean wantPath) throws Analyzer.FailureException
Analyzer.FailureException
- the method contains invalid bytecodepublic final String[][] getLocalTypes()
public final String[][] getStackTypes()
public static Analyzer createAnalyzer(MethodData info)