javassist.bytecode
Class StackMapTable

java.lang.Object
  extended by javassist.bytecode.AttributeInfo
      extended by 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 process of verification by typechecking.

Since:
3.4

Nested Class Summary
static class StackMapTable.RuntimeCopyException
          An exception that may be thrown by copy() in StackMapTable.
static class StackMapTable.Walker
          A code walker for a StackMapTable attribute.
static class StackMapTable.Writer
          A writer of stack map tables.
 
Field Summary
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.
 
Fields inherited from class javassist.bytecode.AttributeInfo
constPool
 
Method Summary
 AttributeInfo copy(ConstPool newCp, java.util.Map classnames)
          Makes a copy.
 void insertLocal(int index, int tag, int classInfo)
          Updates this stack map table when a new local variable is added.
 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 javassist.bytecode.AttributeInfo
get, getConstPool, getName, length, set
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tag

public static final java.lang.String tag
The name of this attribute "StackMapTable".

See Also:
Constant Field Values

TOP

public static final int TOP
Top_variable_info.tag.

See Also:
Constant Field Values

INTEGER

public static final int INTEGER
Integer_variable_info.tag.

See Also:
Constant Field Values

FLOAT

public static final int FLOAT
Float_variable_info.tag.

See Also:
Constant Field Values

DOUBLE

public static final int DOUBLE
Double_variable_info.tag.

See Also:
Constant Field Values

LONG

public static final int LONG
Long_variable_info.tag.

See Also:
Constant Field Values

NULL

public static final int NULL
Null_variable_info.tag.

See Also:
Constant Field Values

THIS

public static final int THIS
UninitializedThis_variable_info.tag.

See Also:
Constant Field Values

OBJECT

public static final int OBJECT
Object_variable_info.tag.

See Also:
Constant Field Values

UNINIT

public static final int UNINIT
Uninitialized_variable_info.tag.

See Also:
Constant Field Values
Method Detail

copy

public AttributeInfo copy(ConstPool newCp,
                          java.util.Map 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 added.

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(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


Copyright © 2011. All Rights Reserved.