|
Oracle Fusion Middleware Java API Reference for Oracle TopLink 11g Release 1 (11.1.1) B32476-02 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
oracle.toplink.libraries.asm.tree.analysis.Frame
public class Frame
A symbolic execution stack frame. A stack frame contains a set of local variable slots, and an operand stack. Warning: long and double values are represented by two slots in local variables, and by one slot in the operand stack.
Constructor Summary | |
---|---|
Frame(Frame src) Constructs a new frame that is identical to the given frame. |
|
Frame(int nLocals, int nStack) Constructs a new frame with the given size. |
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, boolean[] access) Merges this frame with the given frame (case of a RET instruction). |
boolean |
merge(Frame frame, Interpreter interpreter) Merges this frame with the given frame. |
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. |
java.lang.String |
toString() Returns a string representation of this frame. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Frame(int nLocals, int nStack)
nLocals
- the maximum number of local variables of the frame.nStack
- the maximum stack size of the frame.public Frame(Frame src)
src
- a frame.Method Detail |
---|
public Frame init(Frame src)
src
- a frame.public int getLocals()
public Value getLocal(int i) throws AnalyzerException
i
- a local variable index.AnalyzerException
- if the variable does not exist.public void setLocal(int i, Value value) throws AnalyzerException
i
- a local variable index.value
- the new value of this local variable.AnalyzerException
- if the variable does not exist.public int getStackSize()
public Value getStack(int i) throws AnalyzerException
i
- the index of an operand stack slot.AnalyzerException
- if the operand stack slot does not exist.public void clearStack()
public Value pop() throws AnalyzerException
AnalyzerException
- if the operand stack is empty.public void push(Value value) throws AnalyzerException
value
- the value that must be pushed into the stack.AnalyzerException
- if the operand stack is full.public void execute(AbstractInsnNode insn, Interpreter interpreter) throws AnalyzerException
AnalyzerException
public boolean merge(Frame frame, Interpreter interpreter) throws AnalyzerException
frame
- a frame.interpreter
- the interpreter used to merge values.AnalyzerException
- if the frames have incompatible sizes.public boolean merge(Frame frame, boolean[] access)
frame
- a frameaccess
- the local variables that have been accessed by the subroutine to which the RET instruction corresponds.public java.lang.String toString()
toString
in class java.lang.Object
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |