| java.lang.Object com.tc.asm.Frame
Frame | final class Frame (Code) | | Information about the input and output stack map frames of a basic block.
author: Eric Bruneton |
Field Summary | |
final static int | ARRAY_OF Constant to be added to a type to get a type with one more dimension. | final static int | BASE Kind of the types that are not relative to an input stack map frame. | final static int | BASE_KIND Mask to get the kind of base types. | final static int | BASE_VALUE Mask to get the value of base types. | final static int | BOOLEAN The BOOLEAN type. | final static int | BYTE The BYTE type. | final static int | CHAR The CHAR type. | final static int | DIM Mask to get the dimension of a frame type. | final static int | DOUBLE The DOUBLE type. | final static int | ELEMENT_OF Constant to be added to a type to get a type with one less dimension. | final static int | FLOAT The FLOAT type. | final static int | INTEGER The INTEGER type. | final static int | KIND Mask to get the kind of a frame type. | final static int | LONG The LONG type. | final static int | NULL The NULL type. | final static int | OBJECT Base kind of the base reference types. | final static int | SHORT The SHORT type. | final static int[] | SIZE The stack size variation corresponding to each JVM instruction. | final static int | TOP The TOP type. | final static int | UNINITIALIZED Base kind of the uninitialized base types. | final static int | UNINITIALIZED_THIS The UNINITIALIZED_THIS type. | final static int | VALUE Mask to get the value of a frame type. | int[] | inputLocals The input stack map frame locals. | int[] | inputStack The input stack map frame stack. | Label | owner The label (i.e. |
Method Summary | |
void | execute(int opcode, int arg, ClassWriter cw, Item item) Simulates the action of the given instruction on the output stack frame. | void | initInputFrame(ClassWriter cw, int access, Type[] args, int maxLocals) Initializes the input frame of the first basic block from the method
descriptor. | boolean | merge(ClassWriter cw, Frame frame, int edge) Merges the input frame of the given basic block with the input and output
frames of this basic block. |
ARRAY_OF | final static int ARRAY_OF(Code) | | Constant to be added to a type to get a type with one more dimension.
|
BASE | final static int BASE(Code) | | Kind of the types that are not relative to an input stack map frame.
|
BASE_KIND | final static int BASE_KIND(Code) | | Mask to get the kind of base types.
|
BASE_VALUE | final static int BASE_VALUE(Code) | | Mask to get the value of base types.
|
BOOLEAN | final static int BOOLEAN(Code) | | The BOOLEAN type. This is a BASE type mainly used for array types.
|
BYTE | final static int BYTE(Code) | | The BYTE type. This is a BASE type mainly used for array types.
|
CHAR | final static int CHAR(Code) | | The CHAR type. This is a BASE type mainly used for array types.
|
DIM | final static int DIM(Code) | | Mask to get the dimension of a frame type. This dimension is a signed
integer between -8 and 7.
|
DOUBLE | final static int DOUBLE(Code) | | The DOUBLE type. This is a BASE type.
|
ELEMENT_OF | final static int ELEMENT_OF(Code) | | Constant to be added to a type to get a type with one less dimension.
|
FLOAT | final static int FLOAT(Code) | | The FLOAT type. This is a BASE type.
|
INTEGER | final static int INTEGER(Code) | | The INTEGER type. This is a BASE type.
|
LONG | final static int LONG(Code) | | The LONG type. This is a BASE type.
|
NULL | final static int NULL(Code) | | The NULL type. This is a BASE type.
|
OBJECT | final static int OBJECT(Code) | | Base kind of the base reference types. The BASE_VALUE of such types is an
index into the type table.
|
SHORT | final static int SHORT(Code) | | The SHORT type. This is a BASE type mainly used for array types.
|
SIZE | final static int[] SIZE(Code) | | The stack size variation corresponding to each JVM instruction. This
stack variation is equal to the size of the values produced by an
instruction, minus the size of the values consumed by this instruction.
|
TOP | final static int TOP(Code) | | The TOP type. This is a BASE type.
|
UNINITIALIZED | final static int UNINITIALIZED(Code) | | Base kind of the uninitialized base types. The BASE_VALUE of such types
in an index into the type table (the Item at that index contains both an
instruction offset and an internal class name).
|
UNINITIALIZED_THIS | final static int UNINITIALIZED_THIS(Code) | | The UNINITIALIZED_THIS type. This is a BASE type.
|
VALUE | final static int VALUE(Code) | | Mask to get the value of a frame type.
|
inputLocals | int[] inputLocals(Code) | | The input stack map frame locals.
|
inputStack | int[] inputStack(Code) | | The input stack map frame stack.
|
owner | Label owner(Code) | | The label (i.e. basic block) to which these input and output stack map
frames correspond.
|
execute | void execute(int opcode, int arg, ClassWriter cw, Item item)(Code) | | Simulates the action of the given instruction on the output stack frame.
Parameters: opcode - the opcode of the instruction. Parameters: arg - the operand of the instruction, if any. Parameters: cw - the class writer to which this label belongs. Parameters: item - the operand of the instructions, if any. |
initInputFrame | void initInputFrame(ClassWriter cw, int access, Type[] args, int maxLocals)(Code) | | Initializes the input frame of the first basic block from the method
descriptor.
Parameters: cw - the ClassWriter to which this label belongs. Parameters: access - the access flags of the method to which this label belongs. Parameters: args - the formal parameter types of this method. Parameters: maxLocals - the maximum number of local variables of this method. |
merge | boolean merge(ClassWriter cw, Frame frame, int edge)(Code) | | Merges the input frame of the given basic block with the input and output
frames of this basic block. Returns true if the input frame of
the given label has been changed by this operation.
Parameters: cw - the ClassWriter to which this label belongs. Parameters: frame - the basic block whose input frame must be updated. Parameters: edge - the kind of the Edge between this label and 'label'.See Edge.info. true if the input frame of the given label has beenchanged by this operation. |
|
|