Package javassist.bytecode
Class StackMap
java.lang.Object
javassist.bytecode.AttributeInfo
javassist.bytecode.StackMap
Another
stack_map attribute defined in CLDC 1.1 for J2ME.
This is an entry in the attributes table of a Code attribute. It was introduced by J2ME CLDC 1.1 (JSR 139) for pre-verification.
According to the CLDC specification, the sizes of some fields are not 16bit but 32bit if the code size is more than 64K or the number of the local variables is more than 64K. However, for the J2ME CLDC technology, they are always 16bit. The implementation of the StackMap class assumes they are 16bit.
- Since:
- 3.12
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA code walker for a StackMap attribute.static classInternal use only. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDouble_variable_info.tag.static final intFloat_variable_info.tag.static final intInteger_variable_info.tag.static final intLong_variable_info.tag.static final intNull_variable_info.tag.static final intObject_variable_info.tag.static final StringThe name of this attribute"StackMap".static final intUninitializedThis_variable_info.tag.static final intTop_variable_info.tag.static final intUninitialized_variable_info.tag. -
Method Summary
Modifier and TypeMethodDescriptionMakes 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.intReturnsnumber_of_entries.voidprint(PrintWriter out) Prints this stack map.voidremoveNew(int where) Undocumented method.Methods inherited from class javassist.bytecode.AttributeInfo
get, getConstPool, getName, length, set
-
Field Details
-
tag
The name of this attribute"StackMap".- See Also:
-
TOP
public static final int TOPTop_variable_info.tag.- See Also:
-
INTEGER
public static final int INTEGERInteger_variable_info.tag.- See Also:
-
FLOAT
public static final int FLOATFloat_variable_info.tag.- See Also:
-
DOUBLE
public static final int DOUBLEDouble_variable_info.tag.- See Also:
-
LONG
public static final int LONGLong_variable_info.tag.- See Also:
-
NULL
public static final int NULLNull_variable_info.tag.- See Also:
-
THIS
public static final int THISUninitializedThis_variable_info.tag.- See Also:
-
OBJECT
public static final int OBJECTObject_variable_info.tag.- See Also:
-
UNINIT
public static final int UNINITUninitialized_variable_info.tag.- See Also:
-
-
Method Details
-
numOfEntries
public int numOfEntries()Returnsnumber_of_entries. -
copy
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.
-
insertLocal
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. It is available byStackMapTable.typeTagOf(char).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:
-
removeNew
Undocumented method. Do not use; internal-use only.This method is for javassist.convert.TransformNew. It is called to update the stack map when the NEW opcode (and the following DUP) is removed.
- Parameters:
where- the position of the removed NEW opcode.- Throws:
CannotCompileException
-
print
Prints this stack map.
-