org.objectweb.asm.tree.analysis
public class Frame extends Object
Constructor Summary | |
---|---|
Frame(int nLocals, int nStack)
Constructs a new frame with the given size.
| |
Frame(Frame src)
Constructs a new frame that is identical to the given frame.
|
Method Summary | |
---|---|
void | clearStack()
Clears the operand stack of this frame. |
void | execute(AbstractInsnNode insn, Interpreter interpreter) |
Value | getLocal(int i)
Returns the value of the given local variable.
|
int | getLocals()
Returns the maximum number of local variables of this frame.
|
Value | getStack(int i)
Returns the value of the given operand stack slot.
|
int | getStackSize()
Returns the number of values in the operand stack of this frame. |
Frame | init(Frame src)
Copies the state of the given frame into this frame.
|
boolean | merge(Frame frame, Interpreter interpreter)
Merges this frame with the given frame.
|
boolean | merge(Frame frame, boolean[] access)
Merges this frame with the given frame (case of a RET instruction).
|
Value | pop()
Pops a value from the operand stack of this frame.
|
void | push(Value value)
Pushes a value into the operand stack of this frame.
|
void | setLocal(int i, Value value)
Sets the value of the given local variable.
|
String | toString()
Returns a string representation of this frame.
|
Parameters: nLocals the maximum number of local variables of the frame. nStack the maximum stack size of the frame.
Parameters: src a frame.
Parameters: i a local variable index.
Returns: the value of the given local variable.
Throws: IndexOutOfBoundsException if the variable does not exist.
Returns: the maximum number of local variables of this frame.
Parameters: i the index of an operand stack slot.
Returns: the value of the given operand stack slot.
Throws: IndexOutOfBoundsException if the operand stack slot does not exist.
Returns: the number of values in the operand stack of this frame.
Parameters: src a frame.
Returns: this frame.
Parameters: frame a frame. interpreter the interpreter used to merge values.
Returns: true if this frame has been changed as a result of the merge operation, or false otherwise.
Throws: AnalyzerException if the frames have incompatible sizes.
Parameters: frame a frame access the local variables that have been accessed by the subroutine to which the RET instruction corresponds.
Returns: true if this frame has been changed as a result of the merge operation, or false otherwise.
Returns: the value that has been popped from the stack.
Throws: IndexOutOfBoundsException if the operand stack is empty.
Parameters: value the value that must be pushed into the stack.
Throws: IndexOutOfBoundsException if the operand stack is full.
Parameters: i a local variable index. value the new value of this local variable.
Throws: IndexOutOfBoundsException if the variable does not exist.
Returns: a string representation of this frame.