Class Analyzer

  • Direct Known Subclasses:
    Verifier

    public class Analyzer
    extends Object
    • Field Detail

      • isConstructor

        protected final boolean isConstructor
      • isStatic

        protected final boolean isStatic
      • classType

        protected final String classType
      • signature

        protected final String signature
      • maxStack

        protected int maxStack
      • maxLocals

        protected int maxLocals
      • stacks

        protected String[][] stacks
      • locals

        protected String[][] locals
      • stackSizes

        protected int[] stackSizes
      • basicBlockStarts

        protected BitSet basicBlockStarts
      • backEdges

        protected int[][] backEdges
      • instToBC

        protected int[] instToBC
      • varTypes

        protected String[][] varTypes
      • noStrings

        protected static final String[] noStrings
      • noEdges

        protected static final int[] noEdges
    • Method Detail

      • setClassHierarchy

        public final void setClassHierarchy​(ClassHierarchyProvider h)
        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

        public final boolean isSubtypeOf​(String t1,
                                         String t2)
      • findCommonSupertype

        public final String findCommonSupertype​(String t1,
                                                String t2)
      • getBasicBlockStarts

        public final BitSet getBasicBlockStarts()
      • getInstructions

        public final IInstruction[] getInstructions()
      • getReachableFrom

        public final BitSet getReachableFrom​(int from)
      • getReachableFromUpdate

        public final void getReachableFromUpdate​(int from,
                                                 BitSet reachable,
                                                 boolean followHandlers,
                                                 BitSet mask)
      • getReachableFrom

        public final BitSet getReachableFrom​(int from,
                                             boolean followHandlers,
                                             BitSet mask)
      • getReachingToUpdate

        public final void getReachingToUpdate​(int to,
                                              BitSet reaching,
                                              BitSet mask)
      • stripSharp

        public static String stripSharp​(String type)
      • getLocalTypes

        public final String[][] 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

        public final String[][] 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.