Package proguard.evaluation
Class TracedStack
- java.lang.Object
- 
- proguard.evaluation.Stack
- 
- proguard.evaluation.TracedStack
 
 
- 
 public class TracedStack extends Stack ThisStacksaves 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.StackactualMaxSize, currentSize, values
 
- 
 - 
Constructor SummaryConstructors Constructor Description TracedStack(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 SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()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).booleanequals(java.lang.Object object)booleangeneralize(TracedStack other)ValuegetBottomActualProducerValue(int index)Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.ValuegetBottomProducerValue(int index)Gets the specified producer Value from the stack, without disturbing it.ValuegetTopActualProducerValue(int index)Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.ValuegetTopProducerValue(int index)Gets the specified producer Value from the stack, without disturbing it.inthashCode()Valuepop()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).voidpush(Value value)Pushes 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.java.lang.StringtoString()
 
- 
- 
- 
Constructor Detail- 
TracedStackpublic TracedStack(int maxSize) Creates a new TracedStack with a given maximum size.
 - 
TracedStackpublic TracedStack(TracedStack tracedStack) Creates a new TracedStack that is a copy of the given TracedStack.
 
- 
 - 
Method Detail- 
setProducerValuepublic void setProducerValue(Value producerValue) Sets the Value that will be stored along with all push and pop instructions.
 - 
getBottomProducerValuepublic Value getBottomProducerValue(int index) 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.
 
 - 
getBottomActualProducerValuepublic Value getBottomActualProducerValue(int index) 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.
 
 - 
getTopProducerValuepublic Value getTopProducerValue(int index) 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.
 
 - 
getTopActualProducerValuepublic Value getTopActualProducerValue(int index) 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.
 
 - 
resetpublic void reset(int size) Description copied from class:StackResets this Stack, so that it can be reused.
 - 
copypublic void copy(TracedStack other) 
 - 
generalizepublic boolean generalize(TracedStack other) 
 - 
clearpublic void clear() Description copied from class:StackClears the stack.
 - 
removeToppublic void removeTop(int index) Description copied from class:StackRemoves the specified Value from the stack.
 - 
pushpublic void push(Value value) Description copied from class:StackPushes the given Value onto the stack.
 - 
pop1public void pop1() Description copied from class:StackPops the top category 1 value from the stack.
 - 
pop2public void pop2() Description copied from class:StackPops the top category 2 value from the stack (or alternatively, two Category 1 stack elements).
 - 
duppublic void dup() Description copied from class:StackDuplicates the top Category 1 value.
 - 
dup_x1public void dup_x1() Description copied from class:StackDuplicates the top Category 1 value, one Category 1 element down the stack.
 - 
dup_x2public 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.
 - 
dup2public void dup2() Description copied from class:StackDuplicates the top Category 2 value (or alternatively, the equivalent Category 1 stack elements).
 - 
dup2_x1public 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_x2public 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).
 - 
swappublic void swap() Description copied from class:StackSwaps the top two Category 1 values.
 
- 
 
-