Package org.jboss.classfilewriter.code
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 Summary
Constructors Constructor Description StackFrame(ClassMethod method)Creates the initial stack frameStackFrame(StackState stackState, LocalVariableState localVariableState, StackFrameType type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StackFrameaconstNull()pushes a null type onto the stackStackFrameconstructorCall(int initializedValueStackPosition)marks the value in potition initializedValueStackPosition as initialized.StackFramecreateFull()StackFramedup()StackFramedup2()StackFramedup2X1()StackFramedup2X2()StackFramedupX1()StackFramedupX2()LocalVariableStategetLocalVariableState()StackStategetStackState()StackFrameTypegetType()StackFramemergeLocals(int pos, StackEntry frame)StackFramemergeStack(int pos, StackEntry frame)StackFramepop()pops an operand from the stackStackFramepop(int no)StackFramepop2()pops 2 operands from the stackStackFramepop2push1(String type)remote the top two operands and replace them with an different operandStackFramepop3()pops 3 operands from the stackStackFramepop4()pops 4 operands from the stackStackFramepop4push1(String type)remote the top two operands and replace them with an different operandStackFramepush(String type)push an operand of the given type onto the stackStackFramepush(StackEntry entry)push an operand of the given type onto the stack.StackFramereplace(String type)replace the operand at the top of the stack with the given operandStackFramestore(int no)Store the variable on top of the stack into a local variable, poping the variable from the stack.StackFrameswap()StringtoString()
-
-
-
Constructor Detail
-
StackFrame
public StackFrame(ClassMethod method)
Creates the initial stack frame
-
StackFrame
public StackFrame(StackState stackState, LocalVariableState localVariableState, StackFrameType type)
-
-
Method Detail
-
getStackState
public StackState getStackState()
-
getLocalVariableState
public LocalVariableState getLocalVariableState()
-
push
public StackFrame push(String type)
push an operand of the given type onto the stackIf 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
-
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()
-
-