类 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.
-
-
字段概要
-
从类继承的字段 proguard.evaluation.Stack
actualMaxSize, currentSize, values
-
-
构造器概要
构造器 构造器 说明 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.
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 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()-
从类继承的方法 proguard.evaluation.Stack
apop, copy, dpop, fpop, generalize, getActualMaxSize, getBottom, getTop, ipop, lpop, opop, replaceReferences, replaceReferencesIf, setBottom, setTop, size
-
-
-
-
构造器详细资料
-
TracedStack
public TracedStack(int maxSize)
Creates a new TracedStack with a given maximum size.
-
TracedStack
public TracedStack(TracedStack tracedStack)
Creates a new TracedStack that is a copy of the given TracedStack.
-
-
方法详细资料
-
setProducerValue
public void setProducerValue(Value producerValue)
Sets the Value that will be stored along with all push and pop instructions.
-
getBottomProducerValue
public Value getBottomProducerValue(int index)
Gets the specified producer Value from the stack, without disturbing it.- 参数:
index- the index of the stack element, counting from the bottom of the stack.- 返回:
- the producer value at the specified position.
-
getBottomActualProducerValue
public Value getBottomActualProducerValue(int index)
Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.- 参数:
index- the index of the stack element, counting from the bottom of the stack.- 返回:
- the producer value at the specified position.
-
getTopProducerValue
public Value getTopProducerValue(int index)
Gets the specified producer Value from the stack, without disturbing it.- 参数:
index- the index of the stack element, counting from the top of the stack.- 返回:
- the producer value at the specified position.
-
getTopActualProducerValue
public Value getTopActualProducerValue(int index)
Gets the specified actual producer Value from the stack, ignoring dup/swap instructions, without disturbing it.- 参数:
index- the index of the stack element, counting from the top of the stack.- 返回:
- the producer value at the specified position.
-
reset
public void reset(int size)
从类复制的说明:StackResets this Stack, so that it can be reused.
-
copy
public void copy(TracedStack other)
-
generalize
public boolean generalize(TracedStack other)
-
removeTop
public void removeTop(int index)
从类复制的说明:StackRemoves the specified Value from the stack.
-
pop1
public void pop1()
从类复制的说明:StackPops the top category 1 value from the stack.
-
pop2
public void pop2()
从类复制的说明:StackPops the top category 2 value from the stack (or alternatively, two Category 1 stack elements).
-
dup_x1
public void dup_x1()
从类复制的说明:StackDuplicates the top Category 1 value, one Category 1 element down the stack.
-
dup_x2
public void dup_x2()
从类复制的说明:StackDuplicates the top Category 1 value, two Category 1 elements (or one Category 2 element) down the stack.
-
dup2
public void dup2()
从类复制的说明:StackDuplicates the top Category 2 value (or alternatively, the equivalent Category 1 stack elements).
-
dup2_x1
public void dup2_x1()
从类复制的说明: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()
从类复制的说明:StackDuplicates the top Category 2 value, one Category 2 stack element down the stack (or alternatively, the equivalent Category 1 stack values).
-
-