Class StackMapTable

java.lang.Object
javassist.bytecode.AttributeInfo
javassist.bytecode.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:
  • Field Details

  • Method Details

    • copy

      public AttributeInfo copy(ConstPool newCp, Map<String,String> classnames) throws StackMapTable.RuntimeCopyException
      Makes a copy.
      Overrides:
      copy in class AttributeInfo
      Parameters:
      newCp - the constant pool table used by the new copy.
      classnames - pairs of replaced and substituted class names.
      Throws:
      StackMapTable.RuntimeCopyException - if a BadBytecode exception is thrown while copying, it is converted into RuntimeCopyException.
    • 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:
    • 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:
    • println

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

      public void println(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