org.apache.bcel.verifier.structurals
Class OperandStack
java.lang.Object
org.apache.bcel.verifier.structurals.OperandStack
public class OperandStack
extends java.lang.Object
This class implements a stack used for symbolic JVM stack simulation.
[It's used an an operand stack substitute.]
Elements of this stack are org.apache.bcel.generic.Type objects.
$Id: OperandStack.java,v 1.2 2002/08/02 11:57:51 enver Exp $OperandStack(int maxStack) - Creates an empty stack with a maximum of maxStack slots.
|
OperandStack(int maxStack, ObjectType obj) - Creates an otherwise empty stack with a maximum of maxStack slots and
the ObjectType 'obj' at the top.
|
void | clear() - Clears the stack.
|
protected Object | clone() - Returns a deep copy of this object; that means, the clone operates
on a new stack.
|
boolean | equals(Object o) - Returns true if and only if this OperandStack
equals another, meaning equal lengths and equal
objects on the stacks.
|
OperandStack | getClone() - Returns a (typed!) clone of this.
|
void | initializeObject(UninitializedObjectType u) - Replaces all occurences of u in this OperandStack instance
with an "initialized" ObjectType.
|
boolean | isEmpty() - Returns true IFF this OperandStack is empty.
|
int | maxStack() - Returns the number of stack slots this stack can hold.
|
void | merge(OperandStack s) - Merges another stack state into this instance's stack state.
|
Type | peek() - Returns the element on top of the stack.
|
Type | peek(int i) - Returns the element that's i elements below the top element; that means,
iff i==0 the top element is returned.
|
Type | pop() - Returns the element on top of the stack.
|
Type | pop(int i) - Pops i elements off the stack.
|
void | push(Type type) - Pushes a Type object onto the stack.
|
int | slotsUsed() - Returns the number of stack slots used.
|
String | toString() - Returns a String representation of this OperandStack instance.
|
OperandStack
public OperandStack(int maxStack)
Creates an empty stack with a maximum of maxStack slots.
OperandStack
public OperandStack(int maxStack,
ObjectType obj)
Creates an otherwise empty stack with a maximum of maxStack slots and
the ObjectType 'obj' at the top.
clear
public void clear()
Clears the stack.
clone
protected Object clone()
Returns a deep copy of this object; that means, the clone operates
on a new stack. However, the Type objects on the stack are
shared.
equals
public boolean equals(Object o)
Returns true if and only if this OperandStack
equals another, meaning equal lengths and equal
objects on the stacks.
getClone
public OperandStack getClone()
Returns a (typed!) clone of this.
initializeObject
public void initializeObject(UninitializedObjectType u)
Replaces all occurences of u in this OperandStack instance
with an "initialized" ObjectType.
isEmpty
public boolean isEmpty()
Returns true IFF this OperandStack is empty.
maxStack
public int maxStack()
Returns the number of stack slots this stack can hold.
merge
public void merge(OperandStack s)
Merges another stack state into this instance's stack state.
See the Java Virtual Machine Specification, Second Edition, page 146: 4.9.2
for details.
peek
public Type peek()
Returns the element on top of the stack. The element is not popped off the stack!
peek
public Type peek(int i)
Returns the element that's i elements below the top element; that means,
iff i==0 the top element is returned. The element is not popped off the stack!
pop
public Type pop()
Returns the element on top of the stack. The element is popped off the stack.
pop
public Type pop(int i)
Pops i elements off the stack. ALWAYS RETURNS "null"!!!
push
public void push(Type type)
Pushes a Type object onto the stack.
slotsUsed
public int slotsUsed()
Returns the number of stack slots used.
toString
public String toString()
Returns a String representation of this OperandStack instance.