org.objectweb.asm.tree

Class FrameNode

public class FrameNode extends AbstractInsnNode

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 {@link Opcodes#V1_6 V1_6}.

Author: Eric Bruneton

Field Summary
Listlocal
The types of the local variables of this stack map frame.
Liststack
The types of the operand stack elements of this stack map frame.
inttype
The type of this frame.
Constructor Summary
FrameNode(int type, int nLocal, Object[] local, int nStack, Object[] stack)
Constructs a new {@link FrameNode}.
Method Summary
voidaccept(MethodVisitor mv)
Makes the given visitor visit this stack map frame.
AbstractInsnNodeclone(Map labels)
intgetType()

Field Detail

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 {@link 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 {@link MethodVisitor}).

type

public int type
The type of this frame. Must be {@link Opcodes#F_NEW} for expanded frames, or {@link Opcodes#F_FULL}, {@link Opcodes#F_APPEND}, {@link Opcodes#F_CHOP}, {@link Opcodes#F_SAME} or {@link Opcodes#F_APPEND}, {@link Opcodes#F_SAME1} for compressed frames.

Constructor Detail

FrameNode

public FrameNode(int type, int nLocal, Object[] local, int nStack, Object[] stack)
Constructs a new {@link FrameNode}.

Parameters: type the type of this frame. Must be {@link Opcodes#F_NEW} for expanded frames, or {@link Opcodes#F_FULL}, {@link Opcodes#F_APPEND}, {@link Opcodes#F_CHOP}, {@link Opcodes#F_SAME} or {@link Opcodes#F_APPEND}, {@link 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 {@link 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 {@link MethodVisitor}).

Method Detail

accept

public void accept(MethodVisitor mv)
Makes the given visitor visit this stack map frame.

Parameters: mv a method visitor.

clone

public AbstractInsnNode clone(Map labels)

getType

public int getType()