|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavassist.bytecode.AttributeInfo
javassist.bytecode.StackMap
public class 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.
MethodInfo.doPreverify
,
StackMapTable
Nested Class Summary | |
---|---|
static class |
StackMap.Walker
A code walker for a StackMap attribute. |
static class |
StackMap.Writer
Internal use only. |
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 "StackMap" . |
static int |
THIS
UninitializedThis_variable_info.tag . |
static int |
TOP
Top_variable_info.tag . |
static int |
UNINIT
Uninitialized_variable_info.tag . |
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 inserted for a new parameter. |
int |
numOfEntries()
Returns number_of_entries . |
void |
print(java.io.PrintWriter out)
Prints this stack map. |
void |
removeNew(int where)
Undocumented method. |
Methods inherited from class javassist.bytecode.AttributeInfo |
---|
get, getConstPool, getName, length, set |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String tag
"StackMap"
.
public static final int TOP
Top_variable_info.tag
.
public static final int INTEGER
Integer_variable_info.tag
.
public static final int FLOAT
Float_variable_info.tag
.
public static final int DOUBLE
Double_variable_info.tag
.
public static final int LONG
Long_variable_info.tag
.
public static final int NULL
Null_variable_info.tag
.
public static final int THIS
UninitializedThis_variable_info.tag
.
public static final int OBJECT
Object_variable_info.tag
.
public static final int UNINIT
Uninitialized_variable_info.tag
.
Method Detail |
---|
public int numOfEntries()
number_of_entries
.
public AttributeInfo copy(ConstPool newCp, java.util.Map classnames)
copy
in class AttributeInfo
newCp
- the constant pool table used by the new copy.classnames
- pairs of replaced and substituted
class names.public void insertLocal(int index, int tag, int classInfo) throws BadBytecode
index
- the index of the added local variable.tag
- the type tag of that local variable.
It is available by StackMapTable.typeTagOf(char)
.classInfo
- the index of the CONSTANT_Class_info
structure
in a constant pool table. This should be zero unless the tag
is ITEM_Object
.
BadBytecode
CtBehavior.addParameter(javassist.CtClass)
,
StackMapTable.typeTagOf(char)
,
ConstPool
public void removeNew(int where) throws CannotCompileException
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.
where
- the position of the removed NEW opcode.
CannotCompileException
public void print(java.io.PrintWriter out)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |