Class AbstractDPatternOptimizer
java.lang.Object
com.pnfsoftware.jeb.core.AbstractPlugin
com.pnfsoftware.jeb.core.units.code.android.ir.AbstractDOptimizer
com.pnfsoftware.jeb.core.units.code.android.ir.AbstractDPatternOptimizer
- All Implemented Interfaces:
IPlugin,IDOptimizer
Base class for
dexdec (DEX decompiler) IR pattern match-and-replace plugins.-
Field Summary
Fields inherited from class com.pnfsoftware.jeb.core.units.code.android.ir.AbstractDOptimizer
cfg, ctx, ctxlist, decomp, dex, dfa, g, logger, of, tfFields inherited from interface com.pnfsoftware.jeb.core.units.code.android.ir.IDOptimizer
DEOBFUSCATOR, INLINER, REORDERER, SLOW -
Constructor Summary
ConstructorsConstructorDescriptionCreate a pattern optimizer with the default priority. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract Collection<DPatternCompiler.DPattern> Retrieve the patterns applied by this optimizer.intperform()An optimizer must implement this method.Methods inherited from class com.pnfsoftware.jeb.core.units.code.android.ir.AbstractDOptimizer
addTag, analyzeChains, analyzeChains, assignLocalFields, checkInterrupted, cleanGraph, cleanGraph, debugDump, debugVerify, getName, getPluginInformation, getPriority, getTags, getType, invalidateChains, isCollectionOptimizer, isEnabled, perform, performOnCollection, removeTag, resetLocalFields, setEnabled, setName, setPriority, setTypeMethods inherited from class com.pnfsoftware.jeb.core.AbstractPlugin
dispose, getData, setData
-
Constructor Details
-
AbstractDPatternOptimizer
public AbstractDPatternOptimizer()Create a pattern optimizer with the default priority.
-
-
Method Details
-
getPatterns
Retrieve the patterns applied by this optimizer.- Returns:
- the patterns to match and replace
-
perform
public int perform()Description copied from class:AbstractDOptimizerAn optimizer must implement this method. This method is called by a master optimizer to perform the optimization on theselectedtarget.Note that the optimizer is responsible for returning a legal method context, e.g.: the method IR instructions must be consistent with the CFG; the CFG must adhere to certain rules (see
cleanGraph); if the data flow analysis is no longer valid, it should be invalidated (seeresetDFA); etc.- Specified by:
performin classAbstractDOptimizer- Returns:
- the number of optimizations performed, 0 if none
-