java.lang.Object
org.eclipse.persistence.internal.libraries.asm.tree.AbstractInsnNode
org.eclipse.persistence.internal.libraries.asm.tree.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 Details

  • Constructor Details

    • FrameNode

      public FrameNode(int type, int numLocal, Object[] local, int numStack, 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. Long and double values count for one variable.
      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). Long and double values are represented by a single element.
      numStack - number of operand stack elements of this stack map frame. Long and double values count for one stack element.
      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). Long and double values are represented by a single element.
  • Method Details

    • 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(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.
    • clone

      public AbstractInsnNode clone(Map<LabelNode,LabelNode> clonedLabels)
      Description copied from class: AbstractInsnNode
      Returns a copy of this instruction.
      Specified by:
      clone in class AbstractInsnNode
      Parameters:
      clonedLabels - a map from LabelNodes to cloned LabelNodes.
      Returns:
      a copy of this instruction. The returned instruction does not belong to any InsnList.