Class StackMapTable


  • public class StackMapTable
    extends AttributeInfo
    stack_map attribute.

    This is an entry in the attributes table of a Code attribute. It was introduced by J2SE 6 for the verification by typechecking.

    Since:
    3.4
    See Also:
    StackMap
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DOUBLE
      Double_variable_info.tag.
      static int FLOAT
      Float_variable_info.tag.
      static int INTEGER
      Integer_variable_info.tag.
      static int LONG
      Long_variable_info.tag.
      static int NULL
      Null_variable_info.tag.
      static int OBJECT
      Object_variable_info.tag.
      static java.lang.String tag
      The name of this attribute "StackMapTable".
      static int THIS
      UninitializedThis_variable_info.tag.
      static int TOP
      Top_variable_info.tag.
      static int UNINIT
      Uninitialized_variable_info.tag.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      AttributeInfo copy​(ConstPool newCp, java.util.Map<java.lang.String,​java.lang.String> classnames)
      Makes a copy.
      void insertLocal​(int index, int tag, int classInfo)
      Updates this stack map table when a new local variable is inserted for a new parameter.
      void println​(java.io.PrintStream ps)
      Prints the stack table map.
      void println​(java.io.PrintWriter w)
      Prints the stack table map.
      void removeNew​(int where)
      Undocumented method.
      static int typeTagOf​(char descriptor)
      Returns the tag of the type specified by the descriptor.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • insertLocal

        public void insertLocal​(int index,
                                int tag,
                                int classInfo)
                         throws BadBytecode
        Updates this stack map table when a new local variable is inserted for a new parameter.
        Parameters:
        index - the index of the added local variable.
        tag - the type tag of that local variable.
        classInfo - the index of the CONSTANT_Class_info structure in a constant pool table. This should be zero unless the tag is ITEM_Object.
        Throws:
        BadBytecode
        See Also:
        CtBehavior.addParameter(javassist.CtClass), typeTagOf(char), ConstPool
      • typeTagOf

        public static int typeTagOf​(char descriptor)
        Returns the tag of the type specified by the descriptor. This method returns INTEGER unless the descriptor is either D (double), F (float), J (long), L (class type), or [ (array).
        Parameters:
        descriptor - the type descriptor.
        See Also:
        Descriptor
      • println

        public void println​(java.io.PrintWriter w)
        Prints the stack table map.
      • println

        public void println​(java.io.PrintStream ps)
        Prints the stack table map.
        Parameters:
        ps - a print stream such as System.out.
      • removeNew

        public void removeNew​(int where)
                       throws CannotCompileException
        Undocumented method. Do not use; internal-use only.

        This method is for javassist.convert.TransformNew. It is called to update the stack map table when the NEW opcode (and the following DUP) is removed.

        Parameters:
        where - the position of the removed NEW opcode.
        Throws:
        CannotCompileException