soot.toolkits.scalar
Class LocalPacker

java.lang.Object
  |
  +--soot.Transformer
        |
        +--soot.BodyTransformer
              |
              +--soot.toolkits.scalar.LocalPacker

public class LocalPacker
extends BodyTransformer

A BodyTransformer that attemps to minimize the number of local variables used in Body by 'reusing' them when possible. Implemented as a singleton. For example the code: for(int i; i < k; i++); for(int j; j < k; j++); would be transformed into: for(int i; i < k; i++); for(int i; i < k; i++); assuming to further conflicting uses of i and j. Note: LocalSplitter is corresponds to the inverse transformation.

See Also:
BodyTransformer, Body, LocalSplitter

Method Summary
 java.lang.String getDeclaredOptions()
           
protected  void internalTransform(Body body, java.lang.String phaseName, java.util.Map options)
          This method is called to perform the transformation itself.
static LocalPacker v()
          Returns this class' singleton instance.
 
Methods inherited from class soot.BodyTransformer
getDefaultOptions, transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

v

public static LocalPacker v()
Returns this class' singleton instance.
Returns:
the singleton for this class.

getDeclaredOptions

public java.lang.String getDeclaredOptions()
Overrides:
getDeclaredOptions in class BodyTransformer

internalTransform

protected void internalTransform(Body body,
                                 java.lang.String phaseName,
                                 java.util.Map options)
Description copied from class: BodyTransformer
This method is called to perform the transformation itself. It is declared abstract; subclasses must implement this method by making it the entry point to their actual Body transformation.
Overrides:
internalTransform in class BodyTransformer
Tags copied from class: BodyTransformer
Parameters:
b - the body on which to apply the transformation
phaseName - the phasename for this transform; not typically used by implementations.
options - the actual computed options; a combination of default options and Scene specified options.