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 Opcodes.V1_6.
    • Field Detail

      • type

        public int 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.
      • local

        public java.util.List<java.lang.Object> 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 java.util.List<java.lang.Object> 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).
    • Constructor Detail

      • FrameNode

        public FrameNode​(int type,
                         int numLocal,
                         java.lang.Object[] local,
                         int numStack,
                         java.lang.Object[] stack)
        Constructs a new FrameNode.
        Parameters:
        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.
        numLocal - 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).
        numStack - 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).
    • Method Detail

      • getType

        public int getType()
        Description copied from class: AbstractInsnNode
        Returns the type of this instruction.
        Specified by:
        getType in class AbstractInsnNode
        Returns:
        the type of this instruction, i.e. one the constants defined in this class.
      • accept

        public void accept​(org.objectweb.asm.MethodVisitor methodVisitor)
        Description copied from class: AbstractInsnNode
        Makes the given method visitor visit this instruction.
        Specified by:
        accept in class AbstractInsnNode
        Parameters:
        methodVisitor - a method visitor.