Package soot.dexpler

Class DexArrayInitReducer


  • public class DexArrayInitReducer
    extends BodyTransformer
    Transformer that simplifies array initializations. It converts a = 0 b = 42 c[a] = b to c[0] 42 This transformer performs copy propagation, dead assignment elimination, and unused local elimination at once for this special case. The idea is to reduce the code as much as possible for this special case before applying the more expensive other transformers.
    Author:
    Steven Arzt
    • Constructor Detail

      • DexArrayInitReducer

        public DexArrayInitReducer()
    • Method Detail

      • internalTransform

        protected void internalTransform​(Body b,
                                         String phaseName,
                                         Map<String,​String> 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.
        Specified by:
        internalTransform in 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.