proguard.evaluation
Class TracedVariables

java.lang.Object
  extended by proguard.evaluation.Variables
      extended by proguard.evaluation.TracedVariables

public class TracedVariables
extends Variables

This Variables class saves additional information with variables, to keep track of their origins.

The Variables class 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.

In addition, an initialization index can be reset and retrieved, pointing to the most recent variable that has been initialized by a store operation.


Field Summary
static int NONE
           
 
Fields inherited from class proguard.evaluation.Variables
size, values
 
Constructor Summary
TracedVariables(int size)
          Creates a new TracedVariables with a given size.
TracedVariables(TracedVariables tracedVariables)
          Creates a new TracedVariables that is a copy of the given TracedVariables.
 
Method Summary
 boolean equals(java.lang.Object object)
           
 boolean generalize(TracedVariables other, boolean clearConflictingOtherVariables)
           
 int getInitializationIndex()
          Returns the most recent initialization index since it has been reset.
 Value getProducerValue(int index)
          Gets the producer Value for the specified variable, without disturbing it.
 int hashCode()
           
 void initialize(TracedVariables other)
           
 void reset(int size)
          Resets this Variables object, so that it can be reused.
 void resetInitialization()
          Resets the initialization index.
 void setProducerValue(int index, Value value)
          Sets the given producer Value for the specified variable, without disturbing it.
 void setProducerValue(Value producerValue)
          Sets the Value that will be stored along with all store instructions.
 void store(int index, Value value)
          Stores the given Value at the given variable index.
 java.lang.String toString()
           
 
Methods inherited from class proguard.evaluation.Variables
aload, dload, fload, generalize, getValue, iload, initialize, lload, load, oload, size
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NONE

public static final int NONE
See Also:
Constant Field Values
Constructor Detail

TracedVariables

public TracedVariables(int size)
Creates a new TracedVariables with a given size.


TracedVariables

public TracedVariables(TracedVariables tracedVariables)
Creates a new TracedVariables that is a copy of the given TracedVariables.

Method Detail

setProducerValue

public void setProducerValue(Value producerValue)
Sets the Value that will be stored along with all store instructions.


resetInitialization

public void resetInitialization()
Resets the initialization index.


getInitializationIndex

public int getInitializationIndex()
Returns the most recent initialization index since it has been reset.


getProducerValue

public Value getProducerValue(int index)
Gets the producer Value for the specified variable, without disturbing it.

Parameters:
index - the variable index.
Returns:
the producer value of the given variable.

setProducerValue

public void setProducerValue(int index,
                             Value value)
Sets the given producer Value for the specified variable, without disturbing it.

Parameters:
index - the variable index.
value - the producer value to set.

reset

public void reset(int size)
Description copied from class: Variables
Resets this Variables object, so that it can be reused.

Overrides:
reset in class Variables

initialize

public void initialize(TracedVariables other)

generalize

public boolean generalize(TracedVariables other,
                          boolean clearConflictingOtherVariables)

store

public void store(int index,
                  Value value)
Description copied from class: Variables
Stores the given Value at the given variable index.

Overrides:
store in class Variables

equals

public boolean equals(java.lang.Object object)
Overrides:
equals in class Variables

hashCode

public int hashCode()
Overrides:
hashCode in class Variables

toString

public java.lang.String toString()
Overrides:
toString in class Variables