Class Analyzer
java.lang.Object
com.ibm.wala.shrike.shrikeBT.analysis.Analyzer
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
This exception is thrown by verify() when it fails.static final class
static class
-
Field Summary
Modifier and TypeFieldDescriptionprotected int[][]
protected BitSet
protected final String
protected final ExceptionHandler[][]
protected ClassHierarchyProvider
protected final IInstruction[]
protected int[]
protected final boolean
protected final boolean
protected String[][]
protected int
protected int
protected static final int[]
protected static final String[]
protected final String
protected String[][]
protected int[]
static final String
static final String
protected String[][]
-
Constructor Summary
ModifierConstructorDescriptionAnalyzer
(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) -
Method Summary
Modifier and TypeMethodDescriptionfinal void
computeTypes
(Analyzer.TypeVisitor v, BitSet makeTypesAt, boolean wantPath) Verify the method and compute types at every program point.static Analyzer
createAnalyzer
(MethodData info) final String
findCommonSupertype
(String t1, String t2) final int[][]
final BitSet
final IInstruction[]
final String[][]
final BitSet
getReachableFrom
(int from) final BitSet
getReachableFrom
(int from, boolean followHandlers, BitSet mask) final void
getReachableFromUpdate
(int from, BitSet reachable, boolean followHandlers, BitSet mask) final void
getReachingToUpdate
(int to, BitSet reaching, BitSet mask) int[]
final String[][]
protected final void
final boolean
isSubtypeOf
(String t1, String t2) final void
Use class hierarchy information in 'h'.static String
stripSharp
(String type)
-
Field Details
-
thisType
- See Also:
-
topType
- See Also:
-
isConstructor
protected final boolean isConstructor -
isStatic
protected final boolean isStatic -
classType
-
signature
-
instructions
-
handlers
-
hierarchy
-
maxStack
protected int maxStack -
maxLocals
protected int maxLocals -
stacks
-
locals
-
stackSizes
protected int[] stackSizes -
basicBlockStarts
-
backEdges
protected int[][] backEdges -
instToBC
protected int[] instToBC -
varTypes
-
noStrings
-
noEdges
protected static final int[] noEdges
-
-
Constructor Details
-
Analyzer
public Analyzer(boolean isConstructor, boolean isStatic, String classType, String signature, IInstruction[] instructions, ExceptionHandler[][] handlers, int[] instToBC, String[][] vars) -
Analyzer
-
Analyzer
-
-
Method Details
-
setClassHierarchy
Use class hierarchy information in 'h'. If this method is not called or h provides only partial hierarchy information, the verifier behaves optimistically. -
getBackEdges
public final int[][] getBackEdges() -
isSubtypeOf
-
findCommonSupertype
-
getBasicBlockStarts
-
getInstructions
-
getReachableFrom
-
getReachableFromUpdate
-
getReachableFrom
-
getReachingToUpdate
-
stripSharp
-
getStackSizes
- Throws:
Analyzer.FailureException
-
initTypeInfo
- Throws:
Analyzer.FailureException
-
computeTypes
public final void computeTypes(Analyzer.TypeVisitor v, BitSet makeTypesAt, boolean wantPath) throws Analyzer.FailureException Verify the method and compute types at every program point.- Throws:
Analyzer.FailureException
- the method contains invalid bytecode
-
getLocalTypes
- Returns:
- an array indexed by instruction index; each entry is an array of Strings giving the types of the locals at that instruction.
-
getStackTypes
- Returns:
- an array indexed by instruction index; each entry is an array of Strings giving the types of the stack elements at that instruction. The top of the stack is the last element of the array.
-
createAnalyzer
-