Package javassist.bytecode
Class StackMapTable
- java.lang.Object
-
- javassist.bytecode.AttributeInfo
-
- javassist.bytecode.StackMapTable
-
public class StackMapTable extends AttributeInfo
stack_mapattribute.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStackMapTable.RuntimeCopyExceptionAn exception that may be thrown bycopy()inStackMapTable.static classStackMapTable.WalkerA code walker for a StackMapTable attribute.static classStackMapTable.WriterA writer of stack map tables.
-
Field Summary
Fields Modifier and Type Field Description static intDOUBLEDouble_variable_info.tag.static intFLOATFloat_variable_info.tag.static intINTEGERInteger_variable_info.tag.static intLONGLong_variable_info.tag.static intNULLNull_variable_info.tag.static intOBJECTObject_variable_info.tag.static StringtagThe name of this attribute"StackMapTable".static intTHISUninitializedThis_variable_info.tag.static intTOPTop_variable_info.tag.static intUNINITUninitialized_variable_info.tag.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AttributeInfocopy(ConstPool newCp, Map<String,String> classnames)Makes a copy.voidinsertLocal(int index, int tag, int classInfo)Updates this stack map table when a new local variable is inserted for a new parameter.voidprintln(PrintStream ps)Prints the stack table map.voidprintln(PrintWriter w)Prints the stack table map.voidremoveNew(int where)Undocumented method.static inttypeTagOf(char descriptor)Returns the tag of the type specified by the descriptor.-
Methods inherited from class javassist.bytecode.AttributeInfo
get, getConstPool, getName, length, set
-
-
-
-
Field Detail
-
tag
public static final 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, Map<String,String> classnames) throws StackMapTable.RuntimeCopyException
Makes a copy.- Overrides:
copyin classAttributeInfo- Parameters:
newCp- the constant pool table used by the new copy.classnames- pairs of replaced and substituted class names.- Throws:
StackMapTable.RuntimeCopyException- if aBadBytecodeexception is thrown while copying, it is converted intoRuntimeCopyException.
-
insertLocal
public void insertLocal(int index, int tag, int classInfo) throws BadBytecodeUpdates 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 theCONSTANT_Class_infostructure in a constant pool table. This should be zero unless the tag isITEM_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 returnsINTEGERunless 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(PrintWriter w)
Prints the stack table map.
-
println
public void println(PrintStream ps)
Prints the stack table map.- Parameters:
ps- a print stream such asSystem.out.
-
removeNew
public void removeNew(int where) throws CannotCompileExceptionUndocumented 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
-
-