org.objectweb.asm.tree
Class FrameNode
A node that represents a stack map frame. These nodes are pseudo instruction
nodes in order to be inserted in an instruction list. In fact these nodes
must(*) be inserted
just before any instruction node
i that
follows an unconditionnal branch instruction such as GOTO or THROW, that is
the target of a jump instruction, or that starts an exception handler block.
The stack map frame types must describe the values of the local variables and
of the operand stack elements
just before i is executed.
(*) this is mandatory only for classes whose version is greater than or
equal to
V1_6
.
List | local - The types of the local variables of this stack map frame.
|
List | stack - The types of the operand stack elements of this stack map frame.
|
int | type - The type of this frame.
|
FIELD_INSN , FRAME , IINC_INSN , INSN , INT_INSN , JUMP_INSN , LABEL , LDC_INSN , LINE , LOOKUPSWITCH_INSN , METHOD_INSN , MULTIANEWARRAY_INSN , TABLESWITCH_INSN , TYPE_INSN , VAR_INSN , opcode |
FrameNode(int type, int nLocal, Object[] local, int nStack, Object[] stack) - Constructs a new
FrameNode .
|
local
public List local
The types of the local variables of this stack map frame. Elements of
this list can be Integer, String or LabelNode objects (for primitive,
reference and uninitialized types respectively - see
MethodVisitor
).
stack
public List stack
The types of the operand stack elements of this stack map frame. Elements
of this list can be Integer, String or LabelNode objects (for primitive,
reference and uninitialized types respectively - see
MethodVisitor
).
FrameNode
public FrameNode(int type,
int nLocal,
Object[] local,
int nStack,
Object[] stack)
type
- the type of this frame. Must be Opcodes.F_NEW
for
expanded frames, or Opcodes.F_FULL
,
Opcodes.F_APPEND
, Opcodes.F_CHOP
,
Opcodes.F_SAME
or Opcodes.F_APPEND
,
Opcodes.F_SAME1
for compressed frames.nLocal
- number of local variables of this stack map frame.local
- the types of the local variables of this stack map frame.
Elements of this list can be Integer, String or LabelNode objects
(for primitive, reference and uninitialized types respectively -
see MethodVisitor
).nStack
- number of operand stack elements of this stack map frame.stack
- the types of the operand stack elements of this stack map
frame. Elements of this list can be Integer, String or LabelNode
objects (for primitive, reference and uninitialized types
respectively - see MethodVisitor
).
clone
public AbstractInsnNode clone(Map labels)
Returns a copy of this instruction.
- clone in interface AbstractInsnNode
labels
- a map from LabelNodes to cloned LabelNodes.
- a copy of this instruction. The returned instruction does not
belong to any
InsnList
.
getType
public int getType()
Returns the type of this instruction.
- getType in interface AbstractInsnNode
- the type of this instruction, i.e. one the constants defined in
this class.