Class StackFrame

java.lang.Object
org.jboss.classfilewriter.code.StackFrame

public class StackFrame extends Object
Represents a stack frame in the virtual machine. Holds the state of the local variable array and the stack
Author:
Stuart Douglas
  • Constructor Details

  • Method Details

    • getStackState

      public StackState getStackState()
    • getLocalVariableState

      public LocalVariableState getLocalVariableState()
    • push

      public StackFrame push(String type)
      push an operand of the given type onto the stack

      If the entry is wide then a corresponding TOP type will be created

    • push

      public StackFrame push(StackEntry entry)
      push an operand of the given type onto the stack.

      If the entry is wide then a corresponding TOP type will be created

    • aconstNull

      public StackFrame aconstNull()
      pushes a null type onto the stack
      Returns:
    • pop

      public StackFrame pop(int no)
    • pop

      public StackFrame pop()
      pops an operand from the stack
    • pop2

      public StackFrame pop2()
      pops 2 operands from the stack
    • pop3

      public StackFrame pop3()
      pops 3 operands from the stack
    • pop4

      public StackFrame pop4()
      pops 4 operands from the stack
    • replace

      public StackFrame replace(String type)
      replace the operand at the top of the stack with the given operand
    • dup

      public StackFrame dup()
    • dupX1

      public StackFrame dupX1()
    • dupX2

      public StackFrame dupX2()
    • dup2

      public StackFrame dup2()
    • dup2X1

      public StackFrame dup2X1()
    • dup2X2

      public StackFrame dup2X2()
    • store

      public StackFrame store(int no)
      Store the variable on top of the stack into a local variable, poping the variable from the stack. Wide types are handled automatically
    • pop2push1

      public StackFrame pop2push1(String type)
      remote the top two operands and replace them with an different operand
    • pop4push1

      public StackFrame pop4push1(String type)
      remote the top two operands and replace them with an different operand
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • constructorCall

      public StackFrame constructorCall(int initializedValueStackPosition)
      marks the value in potition initializedValueStackPosition as initialized. This also pops this value and everything above it
    • swap

      public StackFrame swap()
    • mergeStack

      public StackFrame mergeStack(int pos, StackEntry frame)
    • mergeLocals

      public StackFrame mergeLocals(int pos, StackEntry frame)
    • getType

      public StackFrameType getType()
    • createFull

      public StackFrame createFull()