Package proguard.evaluation
Class Stack
java.lang.Object
proguard.evaluation.Stack
- Direct Known Subclasses:
TracedStack
This class represents an operand stack that contains
Value instances.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapop()Pops the top ReferenceValue from the stack.voidclear()Clears the stack.voidCopies the values of the given Stack into this Stack.dpop()Pops the top DoubleValue from the stack.voiddup()Duplicates the top Category 1 value.voiddup_x1()Duplicates the top Category 1 value, one Category 1 element down the stack.voiddup_x2()Duplicates the top Category 1 value, two Category 1 elements (or one Category 2 element) down the stack.voiddup2()Duplicates the top Category 2 value (or alternatively, the equivalent Category 1 stack elements).voiddup2_x1()Duplicates the top Category 2 value, one Category 1 element down the stack (or alternatively, the equivalent Category 1 stack values).voiddup2_x2()Duplicates the top Category 2 value, one Category 2 stack element down the stack (or alternatively, the equivalent Category 1 stack values).booleanfpop()Pops the top FloatValue from the stack.booleangeneralize(Stack other) Generalizes the values of this Stack with the values of the given Stack.intReturns the actual maximum stack size that was required for all stack operations, accounting for the double space required by Category 2 values.getBottom(int index) Gets the specified Value from the stack, without disturbing it.getTop(int index) Gets the specified Value from the stack, without disturbing it.inthashCode()ipop()Pops the top IntegerValue from the stack.lpop()Pops the top LongValue from the stack.opop()Pops the top InstructionOffsetValue from the stack.pop()Pops the top Value from the stack.voidpop1()Pops the top category 1 value from the stack.voidpop2()Pops the top category 2 value from the stack (or alternatively, two Category 1 stack elements).voidPushes the given Value onto the stack.voidremoveTop(int index) Removes the specified Value from the stack.voidreplaceReferences(Value toReplace, Value replacement) Replaces all the references to with references to .voidreset(int maxSize) Resets this Stack, so that it can be reused.voidSets the specified Value on the stack, without disturbing it.voidSets the specified Value on the stack, without disturbing it.intsize()Returns the number of elements currently on the stack, accounting for the double space required by Category 2 values.voidswap()Swaps the top two Category 1 values.toString()
-
Field Details
-
values
-
currentSize
protected int currentSize -
actualMaxSize
protected int actualMaxSize
-
-
Constructor Details
-
Stack
public Stack(int maxSize) Creates a new Stack with a given maximum size, accounting for the double space required by Category 2 values. -
Stack
Creates a Stack that is a copy of the given Stack.
-
-
Method Details
-
getActualMaxSize
public int getActualMaxSize()Returns the actual maximum stack size that was required for all stack operations, accounting for the double space required by Category 2 values. -
reset
public void reset(int maxSize) Resets this Stack, so that it can be reused. -
copy
Copies the values of the given Stack into this Stack. -
generalize
Generalizes the values of this Stack with the values of the given Stack. The stacks must have the same current sizes.- Returns:
- whether the generalization has made any difference.
-
clear
public void clear()Clears the stack. -
size
public int size()Returns the number of elements currently on the stack, accounting for the double space required by Category 2 values. -
getBottom
Gets the specified Value from the stack, without disturbing it.- Parameters:
index- the index of the stack element, counting from the bottom of the stack.- Returns:
- the value at the specified position.
-
setBottom
Sets the specified Value on the stack, without disturbing it.- Parameters:
index- the index of the stack element, counting from the bottom of the stack.value- the value to set.
-
getTop
Gets the specified Value from the stack, without disturbing it.- Parameters:
index- the index of the stack element, counting from the top of the stack.- Returns:
- the value at the specified position.
-
setTop
Sets the specified Value on the stack, without disturbing it.- Parameters:
index- the index of the stack element, counting from the top of the stack.value- the value to set.
-
removeTop
public void removeTop(int index) Removes the specified Value from the stack.- Parameters:
index- the index of the stack element, counting from the top of the stack.
-
push
Pushes the given Value onto the stack. -
pop
Pops the top Value from the stack. -
ipop
Pops the top IntegerValue from the stack. -
lpop
Pops the top LongValue from the stack. -
fpop
Pops the top FloatValue from the stack. -
dpop
Pops the top DoubleValue from the stack. -
apop
Pops the top ReferenceValue from the stack. -
opop
Pops the top InstructionOffsetValue from the stack. -
pop1
public void pop1()Pops the top category 1 value from the stack. -
pop2
public void pop2()Pops the top category 2 value from the stack (or alternatively, two Category 1 stack elements). -
dup
public void dup()Duplicates the top Category 1 value. -
dup_x1
public void dup_x1()Duplicates the top Category 1 value, one Category 1 element down the stack. -
dup_x2
public void dup_x2()Duplicates the top Category 1 value, two Category 1 elements (or one Category 2 element) down the stack. -
dup2
public void dup2()Duplicates the top Category 2 value (or alternatively, the equivalent Category 1 stack elements). -
dup2_x1
public void dup2_x1()Duplicates the top Category 2 value, one Category 1 element down the stack (or alternatively, the equivalent Category 1 stack values). -
dup2_x2
public void dup2_x2()Duplicates the top Category 2 value, one Category 2 stack element down the stack (or alternatively, the equivalent Category 1 stack values). -
swap
public void swap()Swaps the top two Category 1 values. -
replaceReferences
Replaces all the references to with references to . -
equals
-
hashCode
public int hashCode() -
toString
-