Package proguard.evaluation
Class TracedStack
java.lang.Object
proguard.evaluation.Stack
proguard.evaluation.TracedStack
This
Stack saves additional information with stack elements, to keep track of their
origins.
The stack stores a given producer Value along with each Value it stores. It then generalizes a given collected Value with the producer Value of each Value it loads. The producer Value and the initial collected Value can be set. The generalized collected Value can be retrieved, either taking into account dup/swap instructions as proper instructions or ignoring them.
-
Field Summary
Fields inherited from class proguard.evaluation.Stack
actualMaxSize, currentSize, values -
Constructor Summary
ConstructorsConstructorDescriptionTracedStack(int maxSize) Creates a new TracedStack with a given maximum size.TracedStack(TracedStack tracedStack) Creates a new TracedStack that is a copy of the given TracedStack. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears the stack.voidcopy(TracedStack other) 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).booleanbooleangeneralize(TracedStack other) getBottomActualProducerValue(int index) Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.getBottomProducerValue(int index) Gets the specified producer Value from the stack, without disturbing it.getTopActualProducerValue(int index) Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.getTopProducerValue(int index) Gets the specified producer Value from the stack, without disturbing it.inthashCode()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.voidreset(int size) Resets this Stack, so that it can be reused.voidsetProducerValue(Value producerValue) Sets the Value that will be stored along with all push and pop instructions.voidswap()Swaps the top two Category 1 values.toString()Methods inherited from class proguard.evaluation.Stack
apop, copy, dpop, fpop, generalize, getActualMaxSize, getBottom, getTop, ipop, lpop, opop, replaceReferences, replaceReferencesIf, setBottom, setTop, size
-
Constructor Details
-
TracedStack
public TracedStack(int maxSize) Creates a new TracedStack with a given maximum size. -
TracedStack
Creates a new TracedStack that is a copy of the given TracedStack.
-
-
Method Details
-
setProducerValue
Sets the Value that will be stored along with all push and pop instructions. -
getBottomProducerValue
Gets the specified producer Value from the stack, without disturbing it.- Parameters:
index- the index of the stack element, counting from the bottom of the stack.- Returns:
- the producer value at the specified position.
-
getBottomActualProducerValue
Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.- Parameters:
index- the index of the stack element, counting from the bottom of the stack.- Returns:
- the producer value at the specified position.
-
getTopProducerValue
Gets the specified producer Value from the stack, without disturbing it.- Parameters:
index- the index of the stack element, counting from the top of the stack.- Returns:
- the producer value at the specified position.
-
getTopActualProducerValue
Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.- Parameters:
index- the index of the stack element, counting from the top of the stack.- Returns:
- the producer value at the specified position.
-
reset
public void reset(int size) Description copied from class:StackResets this Stack, so that it can be reused. -
copy
-
generalize
-
clear
public void clear()Description copied from class:StackClears the stack. -
removeTop
public void removeTop(int index) Description copied from class:StackRemoves the specified Value from the stack. -
push
Description copied from class:StackPushes the given Value onto the stack. -
pop
Description copied from class:StackPops the top Value from the stack. -
pop1
public void pop1()Description copied from class:StackPops the top category 1 value from the stack. -
pop2
public void pop2()Description copied from class:StackPops the top category 2 value from the stack (or alternatively, two Category 1 stack elements). -
dup
public void dup()Description copied from class:StackDuplicates the top Category 1 value. -
dup_x1
public void dup_x1()Description copied from class:StackDuplicates the top Category 1 value, one Category 1 element down the stack. -
dup_x2
public void dup_x2()Description copied from class:StackDuplicates the top Category 1 value, two Category 1 elements (or one Category 2 element) down the stack. -
dup2
public void dup2()Description copied from class:StackDuplicates the top Category 2 value (or alternatively, the equivalent Category 1 stack elements). -
dup2_x1
public void dup2_x1()Description copied from class:StackDuplicates 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()Description copied from class:StackDuplicates 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()Description copied from class:StackSwaps the top two Category 1 values. -
equals
-
hashCode
public int hashCode() -
toString
-