Package | Description |
---|---|
soot |
Base Soot classes, shared by different intermediate representations.
|
soot.asm | |
soot.baf |
Public classes for the Baf intermediate representation.
|
soot.baf.toolkits.base |
A toolkit to optimize the Baf IR.
|
soot.coffi |
Contains classes from the Coffi tool, by Clark Verbrugge.
|
soot.dava | |
soot.dava.internal.AST | |
soot.dexpler | |
soot.dexpler.instructions | |
soot.dexpler.typing | |
soot.grimp |
Public classes for the Grimp intermediate representation.
|
soot.grimp.toolkits.base |
A toolkit to optimize the Grimp IR.
|
soot.javaToJimple | |
soot.javaToJimple.toolkits | |
soot.jbco.bafTransformations | |
soot.jbco.jimpleTransformations | |
soot.jbco.util | |
soot.jimple |
Public classes for the Jimple intermediate representation.
|
soot.jimple.parser |
An interface to the Jimple parser.
|
soot.jimple.spark.fieldrw | |
soot.jimple.toolkits.annotation |
A toolkit to annotate classfiles with array and null bounds check information.
|
soot.jimple.toolkits.annotation.arraycheck |
Classes that carry out an analysis to determine whether or not array bounds
checks are necessary.
|
soot.jimple.toolkits.annotation.callgraph | |
soot.jimple.toolkits.annotation.defs | |
soot.jimple.toolkits.annotation.liveness | |
soot.jimple.toolkits.annotation.logic | |
soot.jimple.toolkits.annotation.nullcheck |
Classes that carry out an analysis to determine whether or not null pointer
checks are necessary.
|
soot.jimple.toolkits.annotation.parity | |
soot.jimple.toolkits.annotation.profiling | |
soot.jimple.toolkits.base |
A toolkit to optimize the Jimple IR.
|
soot.jimple.toolkits.callgraph | |
soot.jimple.toolkits.graph |
A set of utility classes for program transformation and optimizations.
|
soot.jimple.toolkits.ide.icfg | |
soot.jimple.toolkits.invoke |
A toolkit to deal with Jimple and invoke statements.
|
soot.jimple.toolkits.pointer | |
soot.jimple.toolkits.scalar |
A toolkit for scalar optimization of Jimple.
|
soot.jimple.toolkits.scalar.pre |
Particial redundency elimination.
|
soot.jimple.toolkits.thread.mhp | |
soot.jimple.toolkits.thread.synchronization | |
soot.jimple.toolkits.typing |
Implements a typing algorithm for Jimple.
|
soot.jimple.validation | |
soot.shimple |
Public classes for the SSA Shimple intermediate representation.
|
soot.shimple.internal |
Shimple internal messy stuff.
|
soot.shimple.toolkits.scalar |
Some analyses based on Shimple.
|
soot.tagkit |
Classes supporting classfile annotation in Soot.
|
soot.toDex | |
soot.toolkits.exceptions | |
soot.toolkits.graph |
Toolkit to produce and manipulate various types of control flow
graphs.
|
soot.toolkits.graph.interaction | |
soot.toolkits.graph.pdg | |
soot.toolkits.scalar |
A number of scalar optimizations, and the flow analysis framework.
|
soot.tools |
Various extensions to Soot that can be executed instead of soot.Main.
|
soot.util |
Generally useful utility classes for Soot.
|
soot.util.cfgcmd | |
soot.validation | |
soot.xml |
Modifier and Type | Method and Description |
---|---|
Body |
SootMethod.getActiveBody()
Retrieves the active body for this method.
|
Body |
SootMethod.getActiveBody()
Retrieves the active body for this method.
|
Body |
MethodSource.getBody(SootMethod m,
String phaseName)
Returns a filled-out body for the given SootMethod.
|
Body |
UnknownMethodSource.getBody(SootMethod m,
String phaseName) |
Body |
UnknownMethodSource.getBody(SootMethod m,
String phaseName) |
Body |
MethodSource.getBody(SootMethod m,
String phaseName)
Returns a filled-out body for the given SootMethod.
|
Body |
SootMethod.retrieveActiveBody()
Returns the active body if present, else constructs an active body and returns that.
|
Body |
SootMethod.retrieveActiveBody()
Returns the active body if present, else constructs an active body and returns that.
|
Modifier and Type | Method and Description |
---|---|
void |
Pack.apply(Body b) |
void |
Transform.apply(Body b) |
void |
Pack.apply(Body b) |
void |
Transform.apply(Body b) |
protected void |
AbstractJasminClass.assignColorsToLocals(Body body) |
protected void |
AbstractJasminClass.assignColorsToLocals(Body body) |
static List<RefType> |
TrapManager.getExceptionTypesOf(Unit u,
Body body)
Given a body and a unit handling an exception,
returns the list of exception types possibly caught
by the handler.
|
static List<RefType> |
TrapManager.getExceptionTypesOf(Unit u,
Body body)
Given a body and a unit handling an exception,
returns the list of exception types possibly caught
by the handler.
|
static Set<Unit> |
TrapManager.getTrappedUnitsOf(Body b)
Returns a set of units which lie inside the range of any trap.
|
static Set<Unit> |
TrapManager.getTrappedUnitsOf(Body b)
Returns a set of units which lie inside the range of any trap.
|
static List<Trap> |
TrapManager.getTrapsAt(Unit unit,
Body b)
Returns the list of traps caught at Unit u in Body b.
|
static List<Trap> |
TrapManager.getTrapsAt(Unit unit,
Body b)
Returns the list of traps caught at Unit u in Body b.
|
Map<Object,Object> |
Body.importBodyContentsFrom(Body b)
Copies the contents of the given Body into this one.
|
Map<Object,Object> |
Body.importBodyContentsFrom(Body b)
Copies the contents of the given Body into this one.
|
protected void |
BodyPack.internalApply(Body b) |
protected void |
JavaToJimpleBodyPack.internalApply(Body b) |
protected void |
JimpleBodyPack.internalApply(Body b) |
protected void |
Pack.internalApply(Body b) |
protected void |
JimpleBodyPack.internalApply(Body b) |
protected void |
Pack.internalApply(Body b) |
protected void |
JavaToJimpleBodyPack.internalApply(Body b) |
protected void |
BodyPack.internalApply(Body b) |
protected abstract void |
BodyTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options)
This method is called to perform the transformation itself.
|
protected abstract void |
BodyTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options)
This method is called to perform the transformation itself.
|
static boolean |
TrapManager.isExceptionCaughtAt(SootClass e,
Unit u,
Body b)
If exception e is caught at unit u in body b, return true;
otherwise, return false.
|
static boolean |
TrapManager.isExceptionCaughtAt(SootClass e,
Unit u,
Body b)
If exception e is caught at unit u in body b, return true;
otherwise, return false.
|
void |
Printer.printTo(Body b,
PrintWriter out)
Prints out the method corresponding to b Body, (declaration and body),
in the textual format corresponding to the IR used to encode b body.
|
void |
Printer.printTo(Body b,
PrintWriter out)
Prints out the method corresponding to b Body, (declaration and body),
in the textual format corresponding to the IR used to encode b body.
|
void |
SootMethod.setActiveBody(Body body)
Sets the active body for this method.
|
void |
SootMethod.setActiveBody(Body body)
Sets the active body for this method.
|
static void |
TrapManager.splitTrapsAgainst(Body b,
Unit rangeStart,
Unit rangeEnd)
Splits all traps so that they do not cross the range rangeStart - rangeEnd.
|
static void |
TrapManager.splitTrapsAgainst(Body b,
Unit rangeStart,
Unit rangeEnd)
Splits all traps so that they do not cross the range rangeStart - rangeEnd.
|
void |
BodyTransformer.transform(Body b) |
void |
BodyTransformer.transform(Body b) |
void |
BodyTransformer.transform(Body b,
String phaseName) |
void |
BodyTransformer.transform(Body b,
String phaseName) |
void |
BodyTransformer.transform(Body b,
String phaseName,
Map<String,String> options)
Called by clients of the transformation.
|
void |
BodyTransformer.transform(Body b,
String phaseName,
Map<String,String> options)
Called by clients of the transformation.
|
Constructor and Description |
---|
BriefUnitPrinter(Body body) |
BriefUnitPrinter(Body body) |
LabeledUnitPrinter(Body b) |
LabeledUnitPrinter(Body b) |
NormalUnitPrinter(Body body) |
NormalUnitPrinter(Body body) |
Modifier and Type | Method and Description |
---|---|
protected void |
CastAndReturnInliner.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
CastAndReturnInliner.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
Modifier and Type | Class and Description |
---|---|
class |
BafBody |
Modifier and Type | Method and Description |
---|---|
protected void |
JasminClass.assignColorsToLocals(Body body) |
protected void |
JasminClass.assignColorsToLocals(Body body) |
BafBody |
Baf.newBody(Body b)
Returns a BafBody constructed from b.
|
BafBody |
Baf.newBody(Body b)
Returns a BafBody constructed from b.
|
BafBody |
Baf.newBody(Body b,
String phase)
Returns a BafBody constructed from b.
|
BafBody |
Baf.newBody(Body b,
String phase)
Returns a BafBody constructed from b.
|
Constructor and Description |
---|
BafBody(Body body,
Map<String,String> options) |
BafBody(Body body,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
boolean |
ExamplePeephole.apply(Body b) |
boolean |
Peephole.apply(Body b)
Entry point for a peephole.
|
boolean |
Peephole.apply(Body b)
Entry point for a peephole.
|
boolean |
ExamplePeephole.apply(Body b) |
protected void |
LoadStoreOptimizer.internalTransform(Body body,
String phaseName,
Map<String,String> options)
The method that drives the optimizations.
|
protected void |
PeepholeOptimizer.internalTransform(Body body,
String phaseName,
Map<String,String> options)
The method that drives the optimizations.
|
protected void |
StoreChainOptimizer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
PeepholeOptimizer.internalTransform(Body body,
String phaseName,
Map<String,String> options)
The method that drives the optimizations.
|
protected void |
StoreChainOptimizer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
LoadStoreOptimizer.internalTransform(Body body,
String phaseName,
Map<String,String> options)
The method that drives the optimizations.
|
Modifier and Type | Method and Description |
---|---|
Body |
CoffiMethodSource.getBody(SootMethod m,
String phaseName) |
Body |
CoffiMethodSource.getBody(SootMethod m,
String phaseName) |
Modifier and Type | Class and Description |
---|---|
class |
DavaBody |
Modifier and Type | Method and Description |
---|---|
DavaBody |
Dava.newBody(Body b)
Returns a DavaBody constructed from the given body b.
|
DavaBody |
Dava.newBody(Body b)
Returns a DavaBody constructed from the given body b.
|
Modifier and Type | Method and Description |
---|---|
void |
ASTMethodNode.storeLocals(Body OrigBody) |
void |
ASTMethodNode.storeLocals(Body OrigBody) |
Modifier and Type | Method and Description |
---|---|
Body |
DexBody.getBody()
Return the associated JimpleBody.
|
Body |
DexBody.getBody()
Return the associated JimpleBody.
|
Body |
DexBody.jimplify(Body b,
SootMethod m)
Return the jimple equivalent of this body.
|
Body |
DexBody.jimplify(Body b,
SootMethod m)
Return the jimple equivalent of this body.
|
Modifier and Type | Method and Description |
---|---|
static void |
Util.addExceptionAfterUnit(Body b,
String exceptionType,
Unit u,
String m)
Insert a runtime exception before unit u of body b.
|
static void |
Util.addExceptionAfterUnit(Body b,
String exceptionType,
Unit u,
String m)
Insert a runtime exception before unit u of body b.
|
void |
IDalvikTyper.assignType(Body b) |
void |
IDalvikTyper.assignType(Body b) |
protected List<Unit> |
DexTransformer.collectDefinitionsWithAliases(Local l,
LocalDefs localDefs,
LocalUses localUses,
Body body)
Collect definitions of l in body including the definitions of aliases of
l.
|
protected List<Unit> |
DexTransformer.collectDefinitionsWithAliases(Local l,
LocalDefs localDefs,
LocalUses localUses,
Body body)
Collect definitions of l in body including the definitions of aliases of
l.
|
static void |
Util.emptyBody(Body jBody)
Remove all statements except from IdentityStatements for parameters.
|
static void |
Util.emptyBody(Body jBody)
Remove all statements except from IdentityStatements for parameters.
|
protected void |
DexRefsChecker.internalTransform(Body body,
String phaseName,
Map options) |
protected void |
DexRefsChecker.internalTransform(Body body,
String phaseName,
Map options) |
protected void |
DexArrayInitReducer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexIfTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexJumpChainShortener.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexNullArrayRefTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexNullThrowTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexNullTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexNumTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexReturnInliner.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexReturnPacker.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexReturnValuePropagator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexTrapStackFixer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
TrapMinimizer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexReturnPacker.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexNullThrowTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexReturnValuePropagator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexArrayInitReducer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexReturnInliner.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
TrapMinimizer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexJumpChainShortener.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexNullArrayRefTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexTrapStackFixer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
DexNumTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexNullTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DexIfTransformer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
Body |
DexBody.jimplify(Body b,
SootMethod m)
Return the jimple equivalent of this body.
|
Body |
DexBody.jimplify(Body b,
SootMethod m)
Return the jimple equivalent of this body.
|
Constructor and Description |
---|
DexDefUseAnalysis(Body body) |
DexDefUseAnalysis(Body body) |
Modifier and Type | Method and Description |
---|---|
void |
MoveExceptionInstruction.retype(Body body) |
void |
RetypeableInstruction.retype(Body body)
Do actual retype.
|
void |
MoveExceptionInstruction.retype(Body body) |
void |
RetypeableInstruction.retype(Body body)
Do actual retype.
|
Modifier and Type | Method and Description |
---|---|
void |
DalvikTyper.assignType(Body b) |
void |
DalvikTyper.assignType(Body b) |
void |
DalvikTyper.typeUntypedConstrantInDiv(Body b) |
void |
DalvikTyper.typeUntypedConstrantInDiv(Body b) |
static void |
Validate.validateArrays(Body b) |
static void |
Validate.validateArrays(Body b) |
Modifier and Type | Class and Description |
---|---|
class |
GrimpBody
Implementation of the Body class for the Grimp IR.
|
Modifier and Type | Method and Description |
---|---|
GrimpBody |
Grimp.newBody(Body b,
String phase)
Returns a GrimpBody constructed from b.
|
GrimpBody |
Grimp.newBody(Body b,
String phase)
Returns a GrimpBody constructed from b.
|
Modifier and Type | Method and Description |
---|---|
protected void |
ConstructorFolder.internalTransform(Body b,
String phaseName,
Map options)
This method change all new Obj/
|
protected void |
ConstructorFolder.internalTransform(Body b,
String phaseName,
Map options)
This method change all new Obj/
|
Modifier and Type | Method and Description |
---|---|
Body |
AnonClassInitMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
AssertClassMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
ClassLiteralMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
PolyglotMethodSource.getBody(SootMethod sm,
String phaseName) |
Body |
PrivateFieldAccMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
PrivateFieldSetMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
PrivateMethodAccMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
AnonClassInitMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
PolyglotMethodSource.getBody(SootMethod sm,
String phaseName) |
Body |
PrivateFieldAccMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
PrivateFieldSetMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
AssertClassMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
PrivateMethodAccMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Body |
ClassLiteralMethodSource.getBody(SootMethod sootMethod,
String phaseName) |
Modifier and Type | Method and Description |
---|---|
void |
PolyglotMethodSource.addAssertInits(Body body) |
void |
PolyglotMethodSource.addAssertInits(Body body) |
static Local |
Util.getPrivateAccessFieldInvoke(SootMethodRef toInvoke,
ArrayList params,
Body body,
LocalGenerator lg) |
static Local |
Util.getPrivateAccessFieldInvoke(SootMethodRef toInvoke,
ArrayList params,
Body body,
LocalGenerator lg) |
static Local |
Util.getThis(Type sootType,
Body body,
HashMap getThisMap,
LocalGenerator lg) |
static Local |
Util.getThis(Type sootType,
Body body,
HashMap getThisMap,
LocalGenerator lg) |
static Local |
Util.getThisGivenOuter(Type sootType,
HashMap getThisMap,
Body body,
LocalGenerator lg,
Local t2) |
static Local |
Util.getThisGivenOuter(Type sootType,
HashMap getThisMap,
Body body,
LocalGenerator lg,
Local t2) |
Constructor and Description |
---|
LocalGenerator(Body b) |
LocalGenerator(Body b) |
Modifier and Type | Method and Description |
---|---|
protected void |
CondTransformer.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
CondTransformer.internalTransform(Body b,
String phaseName,
Map options) |
Modifier and Type | Method and Description |
---|---|
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
boolean jimpleLocals) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
boolean jimpleLocals) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
Map<Local,Local> b2JLocs) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
Map<Local,Local> b2JLocs) |
static Stack<Type> |
StackTypeHeightCalculator.getAfterStack(Body b,
Unit u) |
static Stack<Type> |
StackTypeHeightCalculator.getAfterStack(Body b,
Unit u) |
protected void |
AddJSRs.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
BAFCounter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
BAFPrintout.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
BafLineNumberer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ConstructorConfuser.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
Counter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
FindDuplicateSequences.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
FixUndefinedLocals.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
IfNullToTryCatch.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
IndirectIfJumpsToCaughtGotos.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
Jimple2BafLocalBuilder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
LocalsToBitField.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
MoveLoadsAboveIfs.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
RemoveRedundantPushStores.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
TryCatchCombiner.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
UpdateConstantsToFields.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
WrapSwitchesInTrys.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
UpdateConstantsToFields.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
IndirectIfJumpsToCaughtGotos.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
BAFCounter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
Jimple2BafLocalBuilder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
IfNullToTryCatch.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ConstructorConfuser.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
AddJSRs.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
Counter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
LocalsToBitField.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
TryCatchCombiner.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
FixUndefinedLocals.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
BAFPrintout.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
FindDuplicateSequences.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
WrapSwitchesInTrys.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
BafLineNumberer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
MoveLoadsAboveIfs.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
RemoveRedundantPushStores.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
boolean |
AddSwitches.checkTraps(Unit u,
Body b) |
boolean |
AddSwitches.checkTraps(Unit u,
Body b) |
protected void |
AddSwitches.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ArithmeticTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
CollectJimpleLocals.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
GotoInstrumenter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ArithmeticTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
AddSwitches.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
GotoInstrumenter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
CollectJimpleLocals.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
static void |
Debugger.printBaf(Body b) |
static void |
Debugger.printBaf(Body b) |
static void |
Debugger.printUnits(Body b,
String msg) |
static void |
Debugger.printUnits(Body b,
String msg) |
Constructor and Description |
---|
SimpleExceptionalGraph(Body body) |
SimpleExceptionalGraph(Body body) |
Modifier and Type | Class and Description |
---|---|
class |
JimpleBody
Implementation of the Body class for the Jimple IR.
|
class |
StmtBody
Abstract base class for Body's on Stmts (Jimple and Grimp).
|
Modifier and Type | Method and Description |
---|---|
Body |
JimpleMethodSource.getBody(SootMethod m,
String phaseName) |
Body |
JimpleMethodSource.getBody(SootMethod m,
String phaseName) |
Modifier and Type | Method and Description |
---|---|
protected void |
JasminClass.assignColorsToLocals(Body body) |
protected void |
JasminClass.assignColorsToLocals(Body body) |
Modifier and Type | Method and Description |
---|---|
Body |
JimpleAST.getBody(SootMethod m)
Returns a body corresponding to the parsed jimple for m.
|
Body |
JimpleAST.getBody(SootMethod m)
Returns a body corresponding to the parsed jimple for m.
|
Modifier and Type | Method and Description |
---|---|
protected void |
FieldTagAggregator.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
FieldTagger.internalTransform(Body body,
String phaseName,
Map options) |
protected void |
FieldTagAggregator.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
FieldTagger.internalTransform(Body body,
String phaseName,
Map options) |
Modifier and Type | Method and Description |
---|---|
protected void |
AvailExprTagger.internalTransform(Body b,
String phaseName,
Map opts) |
protected void |
DominatorsTagger.internalTransform(Body b,
String phaseName,
Map opts) |
protected void |
DominatorsTagger.internalTransform(Body b,
String phaseName,
Map opts) |
protected void |
AvailExprTagger.internalTransform(Body b,
String phaseName,
Map opts) |
Modifier and Type | Method and Description |
---|---|
protected void |
ArrayBoundsChecker.internalTransform(Body body,
String phaseName,
Map opts) |
protected void |
ArrayBoundsChecker.internalTransform(Body body,
String phaseName,
Map opts) |
Modifier and Type | Method and Description |
---|---|
protected void |
CallGraphTagger.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
CallGraphTagger.internalTransform(Body b,
String phaseName,
Map options) |
Modifier and Type | Method and Description |
---|---|
protected void |
ReachingDefsTagger.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ReachingDefsTagger.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
protected void |
LiveVarsTagger.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
LiveVarsTagger.internalTransform(Body b,
String phaseName,
Map options) |
Modifier and Type | Method and Description |
---|---|
protected void |
LoopFinder.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
LoopInvariantFinder.internalTransform(Body b,
String phaseName,
Map options)
this one uses the side effect tester
|
protected void |
LoopInvariantFinder.internalTransform(Body b,
String phaseName,
Map options)
this one uses the side effect tester
|
protected void |
LoopFinder.internalTransform(Body b,
String phaseName,
Map options) |
Modifier and Type | Method and Description |
---|---|
void |
NullCheckEliminator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
NullPointerChecker.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
NullPointerColorer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
void |
NullCheckEliminator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
NullPointerColorer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
NullPointerChecker.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
protected void |
ParityTagger.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
ParityTagger.internalTransform(Body b,
String phaseName,
Map options) |
Modifier and Type | Method and Description |
---|---|
protected void |
ProfilingGenerator.internalTransform(Body body,
String phaseName,
Map opts) |
protected void |
ProfilingGenerator.internalTransform(Body body,
String phaseName,
Map opts) |
Modifier and Type | Method and Description |
---|---|
protected void |
ExceptionChecker.checkInvoke(Body b,
InvokeStmt is) |
protected void |
ExceptionChecker.checkInvoke(Body b,
InvokeStmt is) |
protected void |
ExceptionChecker.checkInvokeExpr(Body b,
InvokeExpr ie,
Stmt s) |
protected void |
ExceptionChecker.checkInvokeExpr(Body b,
InvokeExpr ie,
Stmt s) |
protected void |
ExceptionChecker.checkThrow(Body b,
ThrowStmt ts) |
protected void |
ExceptionChecker.checkThrow(Body b,
ThrowStmt ts) |
protected void |
ExceptionChecker.internalTransform(Body b,
String phaseName,
Map options) |
void |
ThisInliner.internalTransform(Body b,
String phaseName,
Map options) |
void |
ThisInliner.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
ExceptionChecker.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
Aggregator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Traverse the statements in the given body, looking for
aggregation possibilities; that is, given a def d and a use u,
d has no other uses, u has no other defs, collapse d and u.
|
void |
JimpleConstructorFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options)
This method pushes all newExpr down to be the stmt directly before every
invoke of the init
|
void |
PartialConstructorFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options)
This method pushes all newExpr down to be the stmt directly before every
invoke of the init only if they are in the types list
|
void |
PartialConstructorFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options)
This method pushes all newExpr down to be the stmt directly before every
invoke of the init only if they are in the types list
|
void |
JimpleConstructorFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options)
This method pushes all newExpr down to be the stmt directly before every
invoke of the init
|
protected void |
Aggregator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Traverse the statements in the given body, looking for
aggregation possibilities; that is, given a def d and a use u,
d has no other uses, u has no other defs, collapse d and u.
|
protected boolean |
ExceptionChecker.isExceptionCaught(Body b,
Stmt s,
RefType throwType) |
protected boolean |
ExceptionChecker.isExceptionCaught(Body b,
Stmt s,
RefType throwType) |
protected boolean |
ExceptionChecker.isThrowDeclared(Body b,
SootClass throwClass) |
protected boolean |
ExceptionChecker.isThrowDeclared(Body b,
SootClass throwClass) |
protected boolean |
ExceptionChecker.isThrowInStmtRange(Body b,
Stmt begin,
Stmt end,
Stmt s) |
protected boolean |
ExceptionChecker.isThrowInStmtRange(Body b,
Stmt begin,
Stmt end,
Stmt s) |
Modifier and Type | Method and Description |
---|---|
protected void |
ClinitElimTransformer.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
UnreachableMethodTransformer.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
ClinitElimTransformer.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
UnreachableMethodTransformer.internalTransform(Body b,
String phaseName,
Map options) |
Constructor and Description |
---|
ConstantArrayAnalysis(DirectedGraph<Unit> graph,
Body b) |
ConstantArrayAnalysis(DirectedGraph<Unit> graph,
Body b) |
Modifier and Type | Method and Description |
---|---|
protected void |
CriticalEdgeRemover.internalTransform(Body b,
String phaseName,
Map<String,String> options)
performs critical edge-removing.
|
protected void |
LoopConditionUnroller.internalTransform(Body body,
String phaseName,
Map<String,String> options)
unrolls conditions.
|
protected void |
CriticalEdgeRemover.internalTransform(Body b,
String phaseName,
Map<String,String> options)
performs critical edge-removing.
|
protected void |
LoopConditionUnroller.internalTransform(Body body,
String phaseName,
Map<String,String> options)
unrolls conditions.
|
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,Body> |
AbstractJimpleBasedICFG.unitToOwner |
protected Map<Unit,Body> |
AbstractJimpleBasedICFG.unitToOwner |
Modifier and Type | Method and Description |
---|---|
protected Body |
OnTheFlyJimpleBasedICFG.initForMethod(SootMethod m) |
protected Body |
OnTheFlyJimpleBasedICFG.initForMethod(SootMethod m) |
Modifier and Type | Method and Description |
---|---|
DirectedGraph<Unit> |
AbstractJimpleBasedICFG.getOrCreateUnitGraph(Body body) |
DirectedGraph<Unit> |
AbstractJimpleBasedICFG.getOrCreateUnitGraph(Body body) |
protected DirectedGraph<Unit> |
AbstractJimpleBasedICFG.makeGraph(Body body) |
protected DirectedGraph<Unit> |
AbstractJimpleBasedICFG.makeGraph(Body body) |
Modifier and Type | Method and Description |
---|---|
static void |
AccessManager.createAccessorMethods(Body body,
Stmt before,
Stmt after)
Resolves illegal accesses in the interval ]before,after[
by creating accessor methods.
|
static void |
AccessManager.createAccessorMethods(Body body,
Stmt before,
Stmt after)
Resolves illegal accesses in the interval ]before,after[
by creating accessor methods.
|
Modifier and Type | Method and Description |
---|---|
protected void |
CastCheckEliminatorDumper.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
FieldRWTagger.internalTransform(Body body,
String phaseName,
Map options) |
protected void |
ParameterAliasTagger.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
SideEffectTagger.internalTransform(Body body,
String phaseName,
Map options) |
protected void |
SideEffectTagger.internalTransform(Body body,
String phaseName,
Map options) |
protected void |
ParameterAliasTagger.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
CastCheckEliminatorDumper.internalTransform(Body b,
String phaseName,
Map options) |
protected void |
FieldRWTagger.internalTransform(Body body,
String phaseName,
Map options) |
Constructor and Description |
---|
LocalMustNotAliasAnalysis(DirectedGraph<Unit> directedGraph,
Body b) |
LocalMustNotAliasAnalysis(DirectedGraph<Unit> directedGraph,
Body b) |
Modifier and Type | Method and Description |
---|---|
protected void |
CommonSubexpressionEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Common subexpression eliminator.
|
protected void |
ConditionalBranchFolder.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
ConstantCastEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ConstantPropagatorAndFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
CopyPropagator.internalTransform(Body b,
String phaseName,
Map<String,String> opts)
Cascaded copy propagator.
|
protected void |
DeadAssignmentEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Eliminates dead code in a linear fashion.
|
protected void |
EmptySwitchEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
FieldStaticnessCorrector.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
IdentityCastEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
LocalNameStandardizer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
NopEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Removes
NopStmt s from the passed body (which must be
a JimpleBody ). |
protected void |
UnconditionalBranchFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
UnreachableCodeEliminator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
EmptySwitchEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
NopEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Removes
NopStmt s from the passed body (which must be
a JimpleBody ). |
protected void |
ConstantPropagatorAndFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ConstantCastEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
UnconditionalBranchFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
CommonSubexpressionEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Common subexpression eliminator.
|
protected void |
FieldStaticnessCorrector.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
UnreachableCodeEliminator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
IdentityCastEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
ConditionalBranchFolder.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
DeadAssignmentEliminator.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Eliminates dead code in a linear fashion.
|
protected void |
LocalNameStandardizer.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
CopyPropagator.internalTransform(Body b,
String phaseName,
Map<String,String> opts)
Cascaded copy propagator.
|
Constructor and Description |
---|
FastAvailableExpressions(Body b,
SideEffectTester st)
Wrapper for AvailableExpressionsAnalysis.
|
FastAvailableExpressions(Body b,
SideEffectTester st)
Wrapper for AvailableExpressionsAnalysis.
|
SlowAvailableExpressions(Body b)
Wrapper for SlowAvailableExpressionsAnalysis.
|
SlowAvailableExpressions(Body b)
Wrapper for SlowAvailableExpressionsAnalysis.
|
Modifier and Type | Method and Description |
---|---|
protected void |
BusyCodeMotion.internalTransform(Body b,
String phaseName,
Map<String,String> opts)
performs the busy code motion.
|
protected void |
LazyCodeMotion.internalTransform(Body b,
String phaseName,
Map<String,String> opts)
performs the lazy code motion.
|
protected void |
BusyCodeMotion.internalTransform(Body b,
String phaseName,
Map<String,String> opts)
performs the busy code motion.
|
protected void |
LazyCodeMotion.internalTransform(Body b,
String phaseName,
Map<String,String> opts)
performs the lazy code motion.
|
Modifier and Type | Field and Description |
---|---|
Body |
PegChain.body |
Body |
PegChain.body |
Modifier and Type | Method and Description |
---|---|
Body |
PegGraph.getBody() |
Body |
PegGraph.getBody() |
Constructor and Description |
---|
MethodExtentBuilder(Body unitBody,
PegCallGraph pcg,
CallGraph cg) |
MethodExtentBuilder(Body unitBody,
PegCallGraph pcg,
CallGraph cg) |
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set<Object> methodsNeedingInlining,
Set<AllocNode> allocNodes,
List inlineSites,
Map synchObj,
Set<AllocNode> multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set<Object> methodsNeedingInlining,
Set<AllocNode> allocNodes,
List inlineSites,
Map synchObj,
Set<AllocNode> multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set methodsNeedingInlining,
Set allocNodes,
List<List> inlineSites,
Map<SootMethod,String> synchObj,
Set multiRunAllocNodes,
Map<AllocNode,String> allocNodeToObj,
Body unitBody,
String threadName,
SootMethod sm,
boolean addExceEdge,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set methodsNeedingInlining,
Set allocNodes,
List<List> inlineSites,
Map<SootMethod,String> synchObj,
Set multiRunAllocNodes,
Map<AllocNode,String> allocNodeToObj,
Body unitBody,
String threadName,
SootMethod sm,
boolean addExceEdge,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided
Body instance.
|
Modifier and Type | Method and Description |
---|---|
protected void |
LockAllocationBodyTransformer.internalTransform(Body b,
FlowSet fs,
List<soot.jimple.toolkits.thread.synchronization.CriticalSectionGroup> groups,
boolean[] insertedGlobalLock) |
protected void |
LockAllocationBodyTransformer.internalTransform(Body b,
FlowSet fs,
List<soot.jimple.toolkits.thread.synchronization.CriticalSectionGroup> groups,
boolean[] insertedGlobalLock) |
protected void |
LockAllocationBodyTransformer.internalTransform(Body b,
String phase,
Map opts) |
protected void |
LockAllocationBodyTransformer.internalTransform(Body b,
String phase,
Map opts) |
InstanceFieldRef |
LockAllocationBodyTransformer.reconstruct(Body b,
PatchingChain<Unit> units,
InstanceFieldRef lock,
Stmt insertBefore,
boolean redirect) |
InstanceFieldRef |
LockAllocationBodyTransformer.reconstruct(Body b,
PatchingChain<Unit> units,
InstanceFieldRef lock,
Stmt insertBefore,
boolean redirect) |
void |
LockAllocationBodyTransformer.redirectTraps(Body b,
Unit oldUnit,
Unit newUnit) |
void |
LockAllocationBodyTransformer.redirectTraps(Body b,
Unit oldUnit,
Unit newUnit) |
Modifier and Type | Method and Description |
---|---|
static Unit |
Util.findFirstNonIdentityUnit(Body b,
Stmt s)
Returns the first statement after all the "identity statements".
|
static Unit |
Util.findFirstNonIdentityUnit(Body b,
Stmt s)
Returns the first statement after all the "identity statements".
|
static Unit |
Util.findLastIdentityUnit(Body b,
Stmt s)
A new "normal" statement cannot be inserted in the middle of special
"identity statements" (a = @parameter or b = @this in Jimple).
|
static Unit |
Util.findLastIdentityUnit(Body b,
Stmt s)
A new "normal" statement cannot be inserted in the middle of special
"identity statements" (a = @parameter or b = @this in Jimple).
|
protected void |
TypeAssigner.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Assign types to local variables.
|
protected void |
TypeAssigner.internalTransform(Body b,
String phaseName,
Map<String,String> options)
Assign types to local variables.
|
Modifier and Type | Method and Description |
---|---|
void |
FieldRefValidator.validate(Body body,
List<ValidationException> exception) |
void |
IdentityStatementsValidator.validate(Body body,
List<ValidationException> exception) |
void |
IdentityValidator.validate(Body body,
List<ValidationException> exception) |
void |
InvokeArgumentValidator.validate(Body body,
List<ValidationException> exceptions) |
void |
InvokeValidator.validate(Body body,
List<ValidationException> exceptions) |
void |
JimpleTrapValidator.validate(Body body,
List<ValidationException> exception) |
void |
NewValidator.validate(Body body,
List<ValidationException> exception) |
void |
ReturnStatementsValidator.validate(Body body,
List<ValidationException> exception) |
void |
TypesValidator.validate(Body body,
List<ValidationException> exception) |
void |
FieldRefValidator.validate(Body body,
List<ValidationException> exception) |
void |
IdentityStatementsValidator.validate(Body body,
List<ValidationException> exception) |
void |
IdentityValidator.validate(Body body,
List<ValidationException> exception) |
void |
TypesValidator.validate(Body body,
List<ValidationException> exception) |
void |
ReturnStatementsValidator.validate(Body body,
List<ValidationException> exception) |
void |
JimpleTrapValidator.validate(Body body,
List<ValidationException> exception) |
void |
InvokeValidator.validate(Body body,
List<ValidationException> exceptions) |
void |
NewValidator.validate(Body body,
List<ValidationException> exception) |
void |
InvokeArgumentValidator.validate(Body body,
List<ValidationException> exceptions) |
Modifier and Type | Class and Description |
---|---|
class |
ShimpleBody
Implementation of the Body class for the SSA Shimple IR.
|
Modifier and Type | Field and Description |
---|---|
protected Body |
DefaultShimpleFactory.body |
protected Body |
DefaultShimpleFactory.body |
Modifier and Type | Method and Description |
---|---|
Body |
DefaultShimpleFactory.getBody() |
Body |
DefaultShimpleFactory.getBody() |
Body |
ShimpleMethodSource.getBody(SootMethod m,
String phaseName) |
Body |
ShimpleMethodSource.getBody(SootMethod m,
String phaseName) |
Modifier and Type | Method and Description |
---|---|
ShimpleBody |
Shimple.newBody(Body b)
Returns a ShimpleBody constructed from b, using default phase
options.
|
ShimpleBody |
Shimple.newBody(Body b)
Returns a ShimpleBody constructed from b, using default phase
options.
|
ShimpleBody |
Shimple.newBody(Body b,
Map<String,String> options)
Returns a ShimpleBody constructed from b, using provided option
Map.
|
ShimpleBody |
Shimple.newBody(Body b,
Map<String,String> options)
Returns a ShimpleBody constructed from b, using provided option
Map.
|
static void |
Shimple.redirectToPreds(Body body,
Unit remove)
If you are removing a Unit from a Unit chain which contains
PhiExpr's, you might want to call this utility function in
order to update any PhiExpr pointers to the Unit to point to
the Unit's predecessor(s).
|
static void |
Shimple.redirectToPreds(Body body,
Unit remove)
If you are removing a Unit from a Unit chain which contains
PhiExpr's, you might want to call this utility function in
order to update any PhiExpr pointers to the Unit to point to
the Unit's predecessor(s).
|
Constructor and Description |
---|
DefaultShimpleFactory(Body body) |
DefaultShimpleFactory(Body body) |
Constructor and Description |
---|
SPatchingChain(Body aBody,
Chain<Unit> aChain) |
SPatchingChain(Body aBody,
Chain<Unit> aChain) |
Modifier and Type | Method and Description |
---|---|
protected void |
SConstantPropagatorAndFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
SConstantPropagatorAndFolder.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
protected void |
TagAggregator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
TagAggregator.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
void |
DexArrayInitDetector.constructArrayInitializations(Body body)
Constructs packed array initializations from the individual element
assignments in the given body
|
void |
DexArrayInitDetector.constructArrayInitializations(Body body)
Constructs packed array initializations from the individual element
assignments in the given body
|
void |
DexArrayInitDetector.fixTraps(Body activeBody)
Fixes the traps in the given body to account for assignments to individual
array elements being replaced by a single fill instruction.
|
void |
DexArrayInitDetector.fixTraps(Body activeBody)
Fixes the traps in the given body to account for assignments to individual
array elements being replaced by a single fill instruction.
|
protected void |
FastDexTrapTightener.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
SynchronizedMethodTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
TrapSplitter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
SynchronizedMethodTransformer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
FastDexTrapTightener.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
TrapSplitter.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
Modifier and Type | Method and Description |
---|---|
protected void |
TrapTightener.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
TrapTightener.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
Modifier and Type | Field and Description |
---|---|
protected Body |
UnitGraph.body |
protected Body |
UnitGraph.body |
protected Body |
BlockGraph.mBody |
protected Body |
BlockGraph.mBody |
Modifier and Type | Method and Description |
---|---|
Body |
Block.getBody()
Returns the Block's enclosing Body instance.
|
Body |
BlockGraph.getBody()
Returns the
Body this BlockGraph is derived from. |
Body |
ExceptionalGraph.getBody()
Returns the
Body from which this graph was built. |
Body |
UnitGraph.getBody() |
Body |
Block.getBody()
Returns the Block's enclosing Body instance.
|
Body |
UnitGraph.getBody() |
Body |
BlockGraph.getBody()
Returns the
Body this BlockGraph is derived from. |
Body |
ExceptionalGraph.getBody()
Returns the
Body from which this graph was built. |
Constructor and Description |
---|
ArrayRefBlockGraph(Body body)
Constructs an
ArrayRefBlockGraph from the given
Body . |
ArrayRefBlockGraph(Body body)
Constructs an
ArrayRefBlockGraph from the given
Body . |
Block(Unit aHead,
Unit aTail,
Body aBody,
int aIndexInMethod,
int aBlockLength,
BlockGraph aBlockGraph)
Constructs a Block in the context of a BlockGraph, and enclosing Body instances.
|
Block(Unit aHead,
Unit aTail,
Body aBody,
int aIndexInMethod,
int aBlockLength,
BlockGraph aBlockGraph)
Constructs a Block in the context of a BlockGraph, and enclosing Body instances.
|
BriefBlockGraph(Body body)
Constructs a
BriefBlockGraph from a given Body . |
BriefBlockGraph(Body body)
Constructs a
BriefBlockGraph from a given Body . |
BriefUnitGraph(Body body)
Constructs a BriefUnitGraph given a Body instance.
|
BriefUnitGraph(Body body)
Constructs a BriefUnitGraph given a Body instance.
|
ClassicCompleteBlockGraph(Body body)
Constructs a ClassicCompleteBlockGraph for the blocks
found by partitioning the the units of the provided
Body instance into basic blocks. |
ClassicCompleteBlockGraph(Body body)
Constructs a ClassicCompleteBlockGraph for the blocks
found by partitioning the the units of the provided
Body instance into basic blocks. |
ClassicCompleteUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
ClassicCompleteUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
CompleteBlockGraph(Body b) |
CompleteBlockGraph(Body b) |
CompleteUnitGraph(Body b) |
CompleteUnitGraph(Body b) |
ExceptionalBlockGraph(Body body)
Constructs an
ExceptionalBlockGraph for the
blocks found by partitioning the the units of the provided
Body instance into basic blocks. |
ExceptionalBlockGraph(Body body)
Constructs an
ExceptionalBlockGraph for the
blocks found by partitioning the the units of the provided
Body instance into basic blocks. |
ExceptionalUnitGraph(Body body)
Constructs the graph from a given Body instance, using the
Scene
's default ThrowAnalysis to estimate the set of exceptions that
each Unit might throw and a default value, provided by the
Options class, for the omitExceptingUnitEdges
parameter. |
ExceptionalUnitGraph(Body body)
Constructs the graph from a given Body instance, using the
Scene
's default ThrowAnalysis to estimate the set of exceptions that
each Unit might throw and a default value, provided by the
Options class, for the omitExceptingUnitEdges
parameter. |
ExceptionalUnitGraph(Body body,
boolean ignoredBogusParameter)
Allocates an
ExceptionalUnitGraph object without
initializing it. |
ExceptionalUnitGraph(Body body,
boolean ignoredBogusParameter)
Allocates an
ExceptionalUnitGraph object without
initializing it. |
ExceptionalUnitGraph(Body body,
ThrowAnalysis throwAnalysis)
Constructs the graph from a given Body instance using the passed
ThrowAnalysis and a default value, provided by the
Options class, for the omitExceptingUnitEdges
parameter. |
ExceptionalUnitGraph(Body body,
ThrowAnalysis throwAnalysis)
Constructs the graph from a given Body instance using the passed
ThrowAnalysis and a default value, provided by the
Options class, for the omitExceptingUnitEdges
parameter. |
ExceptionalUnitGraph(Body body,
ThrowAnalysis throwAnalysis,
boolean omitExceptingUnitEdges)
Constructs the graph for a given Body instance, using the
ThrowAnalysis and omitExceptingUnitEdges value
that are passed as parameters. |
ExceptionalUnitGraph(Body body,
ThrowAnalysis throwAnalysis,
boolean omitExceptingUnitEdges)
Constructs the graph for a given Body instance, using the
ThrowAnalysis and omitExceptingUnitEdges value
that are passed as parameters. |
LoopNestTree(Body b)
Builds a loop nest tree from a method body using
LoopFinder . |
LoopNestTree(Body b)
Builds a loop nest tree from a method body using
LoopFinder . |
TrapUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
TrapUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
UnitGraph(Body body)
Performs the work that is required to construct any sort of
UnitGraph.
|
UnitGraph(Body body)
Performs the work that is required to construct any sort of
UnitGraph.
|
ZonedBlockGraph(Body body)
Constructs a ZonedBlockGraph for the Units
comprising the passed
Body . |
ZonedBlockGraph(Body body)
Constructs a ZonedBlockGraph for the Units
comprising the passed
Body . |
Modifier and Type | Method and Description |
---|---|
void |
InteractionHandler.handleNewAnalysis(Transform t,
Body b) |
void |
InteractionHandler.handleNewAnalysis(Transform t,
Body b) |
void |
InteractionHandler.handleTransformDone(Transform t,
Body b) |
void |
InteractionHandler.handleTransformDone(Transform t,
Body b) |
Modifier and Type | Field and Description |
---|---|
protected Body |
HashMutablePDG.m_body |
protected Body |
HashMutablePDG.m_body |
protected Body |
RegionAnalysis.m_methodBody |
protected Body |
RegionAnalysis.m_methodBody |
Constructor and Description |
---|
EnhancedBlockGraph(Body body) |
EnhancedBlockGraph(Body body) |
EnhancedUnitGraph(Body body) |
EnhancedUnitGraph(Body body) |
Modifier and Type | Field and Description |
---|---|
protected Map<Body,Pair<Long,SmartLocalDefs>> |
SmartLocalDefsPool.pool |
protected Map<Body,Pair<Long,SmartLocalDefs>> |
SmartLocalDefsPool.pool |
Modifier and Type | Method and Description |
---|---|
static void |
FastColorer.assignColorsToLocals(Body unitBody,
Map<Local,Object> localToGroup,
Map<Local,Integer> localToColor,
Map<Object,Integer> groupToColorCount)
Provides an economical coloring for the locals of
unitBody . |
static void |
FastColorer.assignColorsToLocals(Body unitBody,
Map<Local,Object> localToGroup,
Map<Local,Integer> localToColor,
Map<Object,Integer> groupToColorCount)
Provides an economical coloring for the locals of
unitBody . |
SmartLocalDefs |
SmartLocalDefsPool.getSmartLocalDefsFor(Body b)
This method returns a fresh instance of a
SmartLocalDefs analysis, based
on a freshly created ExceptionalUnitGraph for b, with standard parameters. |
SmartLocalDefs |
SmartLocalDefsPool.getSmartLocalDefsFor(Body b)
This method returns a fresh instance of a
SmartLocalDefs analysis, based
on a freshly created ExceptionalUnitGraph for b, with standard parameters. |
protected void |
LocalPacker.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
LocalSplitter.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
UnusedLocalEliminator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
LocalSplitter.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
UnusedLocalEliminator.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
protected void |
LocalPacker.internalTransform(Body body,
String phaseName,
Map<String,String> options) |
void |
SmartLocalDefsPool.invalidate(Body b) |
void |
SmartLocalDefsPool.invalidate(Body b) |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(Body body)
Creates a new LocalDefs analysis based on a
ExceptionalUnitGraph |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(Body body)
Creates a new LocalDefs analysis based on a
ExceptionalUnitGraph |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(Body body,
boolean expectUndefined)
Creates a new LocalDefs analysis based on a
ExceptionalUnitGraph
If you don't trust the input you should set expectUndefined
to true |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(Body body,
boolean expectUndefined)
Creates a new LocalDefs analysis based on a
ExceptionalUnitGraph
If you don't trust the input you should set expectUndefined
to true |
static LocalUses |
LocalUses.Factory.newLocalUses(Body body) |
static LocalUses |
LocalUses.Factory.newLocalUses(Body body) |
static LocalUses |
LocalUses.Factory.newLocalUses(Body body,
LocalDefs localDefs) |
static LocalUses |
LocalUses.Factory.newLocalUses(Body body,
LocalDefs localDefs) |
static void |
FastColorer.unsplitAssignColorsToLocals(Body unitBody,
Map<Local,Object> localToGroup,
Map<Local,Integer> localToColor,
Map<Object,Integer> groupToColorCount)
Provides a coloring for the locals of
unitBody , attempting
to not split locals assigned the same name in the original Jimple. |
static void |
FastColorer.unsplitAssignColorsToLocals(Body unitBody,
Map<Local,Object> localToGroup,
Map<Local,Integer> localToColor,
Map<Object,Integer> groupToColorCount)
Provides a coloring for the locals of
unitBody , attempting
to not split locals assigned the same name in the original Jimple. |
Constructor and Description |
---|
SimpleLocalUses(Body body,
LocalDefs localDefs)
Construct the analysis from a method body and a LocalDefs
interface.
|
SimpleLocalUses(Body body,
LocalDefs localDefs)
Construct the analysis from a method body and a LocalDefs
interface.
|
Modifier and Type | Method and Description |
---|---|
protected void |
CFGViewer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
CFGViewer.internalTransform(Body b,
String phaseName,
Map<String,String> options) |
protected void |
CFGViewer.print_cfg(Body body) |
protected void |
CFGViewer.print_cfg(Body body) |
Modifier and Type | Method and Description |
---|---|
void |
PhaseDumper.dumpAfter(Body b,
String phaseName)
Tells the
PhaseDumper that a Body
transforming phase has ended, so that it can dump the
phases's “after” file. |
void |
PhaseDumper.dumpAfter(Body b,
String phaseName)
Tells the
PhaseDumper that a Body
transforming phase has ended, so that it can dump the
phases's “after” file. |
void |
PhaseDumper.dumpBefore(Body b,
String phaseName)
Tells the
PhaseDumper that a Body
transforming phase has started, so that it can dump the
phases's “before” file. |
void |
PhaseDumper.dumpBefore(Body b,
String phaseName)
Tells the
PhaseDumper that a Body
transforming phase has started, so that it can dump the
phases's “before” file. |
void |
PhaseDumper.dumpBody(Body b,
String baseName) |
void |
PhaseDumper.dumpBody(Body b,
String baseName) |
void |
PhaseDumper.dumpGraph(DirectedGraph g,
Body b)
Asks the
PhaseDumper to dump the passed DirectedGraph if the current phase is being dumped. |
void |
PhaseDumper.dumpGraph(DirectedGraph g,
Body b)
Asks the
PhaseDumper to dump the passed DirectedGraph if the current phase is being dumped. |
Constructor and Description |
---|
UnitMap(Body b)
maps each unit of this body to the result of
mapTo .before the mapping the method init is called.the internal hashtable is initialized without any parameter. |
UnitMap(Body b)
maps each unit of this body to the result of
mapTo .before the mapping the method init is called.the internal hashtable is initialized without any parameter. |
UnitMap(Body b,
int initialCapacity)
maps each unit of this body to the result of
mapTo .before the mapping the method init is called.the internal hashtable is initialized to initialCapacity . |
UnitMap(Body b,
int initialCapacity)
maps each unit of this body to the result of
mapTo .before the mapping the method init is called.the internal hashtable is initialized to initialCapacity . |
UnitMap(Body b,
int initialCapacity,
float loadFactor)
maps each unit of this body to the result of
mapTo .before the mapping the method init is called.the internal hashtable is initialized to initialCapacity and
loadFactor . |
UnitMap(Body b,
int initialCapacity,
float loadFactor)
maps each unit of this body to the result of
mapTo .before the mapping the method init is called.the internal hashtable is initialized to initialCapacity and
loadFactor . |
Modifier and Type | Method and Description |
---|---|
abstract Body |
CFGIntermediateRep.getBody(JimpleBody b)
Converts a
JimpleBody into the
corresponding Body in this intermediate
representation. |
abstract Body |
CFGIntermediateRep.getBody(JimpleBody b)
Converts a
JimpleBody into the
corresponding Body in this intermediate
representation. |
Modifier and Type | Method and Description |
---|---|
abstract DirectedGraph |
CFGGraphType.buildGraph(Body b)
Method that will build a graph of this type.
|
abstract DirectedGraph |
CFGGraphType.buildGraph(Body b)
Method that will build a graph of this type.
|
<N> DotGraph |
CFGToDotGraph.drawCFG(DirectedGraph<N> graph,
Body body)
Create a
DotGraph whose nodes and edges depict
a control flow graph without distinguished
exceptional edges. |
<N> DotGraph |
CFGToDotGraph.drawCFG(DirectedGraph<N> graph,
Body body)
Create a
DotGraph whose nodes and edges depict
a control flow graph without distinguished
exceptional edges. |
abstract DotGraph |
CFGGraphType.drawGraph(CFGToDotGraph drawer,
DirectedGraph g,
Body b)
Method that will draw a
DotGraph representation of the
control flow in this type of graph. |
abstract DotGraph |
CFGGraphType.drawGraph(CFGToDotGraph drawer,
DirectedGraph g,
Body b)
Method that will draw a
DotGraph representation of the
control flow in this type of graph. |
Modifier and Type | Method and Description |
---|---|
void |
BodyValidator.validate(Body body,
List<ValidationException> exceptions)
Validates the given body and saves all validation errors in the given list.
|
void |
CheckEscapingValidator.validate(Body body,
List<ValidationException> exception) |
void |
CheckInitValidator.validate(Body body,
List<ValidationException> exception) |
void |
CheckTypesValidator.validate(Body body,
List<ValidationException> exception) |
void |
CheckVoidLocalesValidator.validate(Body body,
List<ValidationException> exception) |
void |
LocalsValidator.validate(Body body,
List<ValidationException> exception) |
void |
TrapsValidator.validate(Body body,
List<ValidationException> exception) |
void |
UnitBoxesValidator.validate(Body body,
List<ValidationException> exception) |
void |
UsesValidator.validate(Body body,
List<ValidationException> exception) |
void |
ValueBoxesValidator.validate(Body body,
List<ValidationException> exception) |
void |
UsesValidator.validate(Body body,
List<ValidationException> exception) |
void |
ValueBoxesValidator.validate(Body body,
List<ValidationException> exception) |
void |
TrapsValidator.validate(Body body,
List<ValidationException> exception) |
void |
CheckInitValidator.validate(Body body,
List<ValidationException> exception) |
void |
CheckEscapingValidator.validate(Body body,
List<ValidationException> exception) |
void |
CheckVoidLocalesValidator.validate(Body body,
List<ValidationException> exception) |
void |
LocalsValidator.validate(Body body,
List<ValidationException> exception) |
void |
UnitBoxesValidator.validate(Body body,
List<ValidationException> exception) |
void |
BodyValidator.validate(Body body,
List<ValidationException> exceptions)
Validates the given body and saves all validation errors in the given list.
|
void |
CheckTypesValidator.validate(Body body,
List<ValidationException> exception) |
Constructor and Description |
---|
UnitValidationException(Unit concerned,
Body body,
String strMessage)
Creates a new ValidationException, treated as an error.
|
UnitValidationException(Unit concerned,
Body body,
String strMessage)
Creates a new ValidationException, treated as an error.
|
UnitValidationException(Unit concerned,
Body body,
String strMessage,
boolean isWarning)
Creates a new ValidationException.
|
UnitValidationException(Unit concerned,
Body body,
String strMessage,
boolean isWarning)
Creates a new ValidationException.
|
Modifier and Type | Method and Description |
---|---|
void |
TagCollector.collectBodyTags(Body b) |
void |
TagCollector.collectBodyTags(Body b) |