Public Methods | |
PostProcess (List ct, AnnotationManager cfs) | |
void | resClassCons () |
Private Methods | |
void | addCatchesToRemovedSet (Set removedSet, Vector catches, StmtList stmtList, Set linePropList, BitSet slcSet) |
void | addCatchesToSliceSet (BitSet slcSet, Vector catches, StmtList stmtList) |
InvokeExpr | buildNewInvokeExpr (InvokeExpr invokeExpr) |
void | callSiteInSlice (Map callSiteIndexMap, Map callSiteMap, Stmt stmt) |
void | changeTarget (StmtList stmtList, Stmt newTarget, Stmt oldTarget, Map jumpTargetMap) |
boolean | emptyBody (Stmt[] bodyStmts, BitSet sliceSet, StmtList stmtList) |
boolean | emptyBody (Set bodyStmts, BitSet sliceSet, StmtList stmtList) |
Set | fieldRefToField (Set fieldRefSet) |
void | filterOutFields (Set variableSet) |
Set | getAllVarsOf (MethodInfo mdInfo) |
LinkedList | getKeepedParaOriginalIndex (MethodInfo mdInfo) |
int | getNewJumpTarget (int currentTarget, BuildPDG bpdg, BitSet rmStmtSet) |
Set | getTrapHandlers (JimpleBody jimpBody) |
boolean | isImplementingOneAbstractMd (SootClass superClass, SootMethod sm) |
boolean | isImplementingOneAbstractMd (SootMethod sm) |
boolean | isImplementingOneInterfaceMd (SootClass interfaceClass, SootMethod sm) |
boolean | isPublicAndStatic (int modifier) |
void | keepParasOfMainMd (MethodInfo mdInfo, Map relevantVars, StmtList stmtList, BitSet sliceSet) |
void | makeMethodEmpty (MethodInfo methodInfo, Annotation annForSm) |
void | modifyJumpTargetMap (StmtList stmtList, Map changedStmtMap, Map jumpTargetMap) |
void | modifyMethod (MethodInfo mdInfo) |
void | relevantExceptionClasses () |
void | relevantFDClass () |
void | removeEmptyBlock (MethodInfo mdInfo, Set rmedStmtByEmptBlck, Vector currentCFANNs, StmtList stmtList, JimpleBody jimpleBody) |
void | removeEmptyConditionalBlock (Vector currentCfanns, BitSet slcSet, Set linePropList, Set removedStmtByEmptyB, StmtList stmtList) |
void | removeEmptyLock (List lockPairList, BitSet slcSet, Set linePropList, Set removedStmtByEmptyB, StmtList stmtList) |
void | removeEmptyTry (Vector currentCfanns, BitSet slcSet, Set linePropList, Set removedStmtByEmptyB, StmtList stmtList, JimpleBody jimpleBody) |
void | removeEmptyTryFinally (Vector currentCfanns, BitSet slcSet, Set linePropList, Set removedStmtByEmptyB, StmtList stmtList, JimpleBody jimpleBody) |
void | removeFieldInClinit (SootClass sootClass, SootField sootField) |
void | removeIrrelevantFields (ClassInfo classInfo) |
void | removeSourceFor (Map jumpTarMap, int removingStmtIndex) |
void | removeTrapsOf (Stmt[] bodyStmts, JimpleBody jimpleBody) |
void | residualParameters (MethodInfo mdInfo) |
void | returnToVoid () |
void | rmIrrelevantFds () |
void | rmIrrelevantParasForInvoke () |
void | rmIrrelevantParasForMd () |
void | rmMethodAndClass (Map removableMdMap) |
void | rmParasOfInvokeExpr (MethodInfo mdInfo) |
Static Private Methods | |
Set | allVarsOf (Stmt stmt) |
Set | getAllVarsOf (StmtList ostmtList, BitSet stmtIndexSet) |
Set | getRelevantLocals (StmtList stmtList, BitSet sliceSet, Map relevantVars) |
Private Attributes | |
List | classList |
List | removableClasses = new ArrayList() |
List | changeReturnTypeToVoidMds = new ArrayList() |
Set | relevantFields = new ArraySet() |
Set | relevantExceptionClassNames = new ArraySet() |
AnnotationManager | cfanns = null |
Definition at line 53 of file PostProcess.java.
|
Definition at line 81 of file PostProcess.java. |
|
Add all statements in
Definition at line 99 of file PostProcess.java. Referenced by removeEmptyTry(), and removeEmptyTryFinally().
|
|
Add all statements in catch blocks into the given slice set.
Definition at line 121 of file PostProcess.java. Referenced by removeEmptyTry(), and removeEmptyTryFinally().
|
|
Get all variables appeared in one statement.
Definition at line 159 of file PostProcess.java. Referenced by getAllVarsOf().
|
|
Chang arguments of an invoke expression.
Definition at line 185 of file PostProcess.java. Referenced by rmParasOfInvokeExpr().
|
|
Process parameters of a call site in slice. Change parameters of an invoke expression in terms of changes in called method.
Definition at line 232 of file PostProcess.java. Referenced by modifyMethod().
|
|
Change the target of a control transferring statement, if that target is not in slice. For example,
Definition at line 272 of file PostProcess.java. Referenced by modifyJumpTargetMap(), and modifyMethod().
|
|
See if all statements in a set of statement are not in a slice set.
Definition at line 318 of file PostProcess.java. |
|
See if all statements in an array of statement are not in a slice set.
Definition at line 302 of file PostProcess.java. Referenced by removeEmptyConditionalBlock(), removeEmptyLock(), removeEmptyTry(), and removeEmptyTryFinally().
|
|
Collect soot fields from a set of field references.
Definition at line 332 of file PostProcess.java. Referenced by removeIrrelevantFields().
|
|
Collect all FieldRef from a set of Value into the field relevantFields.
Definition at line 345 of file PostProcess.java. Referenced by modifyMethod(), and resClassCons().
|
|
Get all Value used/defined in a method body.
Definition at line 375 of file PostProcess.java. |
|
Get all Value used/defined in a set of statements.
Definition at line 359 of file PostProcess.java. Referenced by modifyMethod(), resClassCons(), and residualParameters().
|
|
Get residual parameters for a method.
Definition at line 391 of file PostProcess.java. Referenced by callSiteInSlice().
|
|
Get new jump target from a given current target. The new target should be the immediate postdominator of current target.
Definition at line 413 of file PostProcess.java. Referenced by modifyMethod().
|
|
Get all relevant variables in given slice set.
Definition at line 435 of file PostProcess.java. Referenced by getKeepedParaOriginalIndex(), and modifyMethod().
|
|
Get all trap hanlders from jimple body.
Definition at line 452 of file PostProcess.java. Referenced by modifyMethod().
|
|
Insert the method's description here. Creation date: (00-11-14 10:59:21)
Definition at line 490 of file PostProcess.java. |
|
Insert the method's description here. Creation date: (00-11-14 11:18:28)
Definition at line 469 of file PostProcess.java. Referenced by isImplementingOneAbstractMd(), and resClassCons().
|
|
Insert the method's description here. Creation date: (00-11-14 11:29:00)
Definition at line 521 of file PostProcess.java. Referenced by isImplementingOneAbstractMd().
|
|
See if a given modifier is public and static.
Definition at line 538 of file PostProcess.java. Referenced by keepParasOfMainMd().
|
|
Keep all parameters for
Definition at line 553 of file PostProcess.java. Referenced by modifyMethod().
|
|
Insert the method's description here. Creation date: (00-11-14 13:21:07)
Definition at line 572 of file PostProcess.java. Referenced by resClassCons().
|
|
Modify jump target map in terms of a changed statement map.
Definition at line 655 of file PostProcess.java. Referenced by modifyMethod(), and residualParameters().
|
|
Construct residual method.
Definition at line 670 of file PostProcess.java. Referenced by resClassCons().
|
|
Insert the method's description here. Creation date: (00-11-10 9:18:31) Definition at line 911 of file PostProcess.java. Referenced by resClassCons().
|
|
Filter out the classes such that there is no method left in the class, but there are some fields are relevant, i.e., accessible by other relvant classes. So those classes are not removable. Definition at line 938 of file PostProcess.java. Referenced by resClassCons().
|
|
Remove all empty block in one method. It's including:
Definition at line 965 of file PostProcess.java. Referenced by modifyMethod().
|
|
Remove empty conditional block.
Definition at line 988 of file PostProcess.java. Referenced by removeEmptyBlock().
|
|
Remove empty lock.
Definition at line 1070 of file PostProcess.java. Referenced by removeEmptyBlock().
|
|
Remove empty try block.
Definition at line 1112 of file PostProcess.java. Referenced by removeEmptyBlock().
|
|
Remove empty try finally block.
Definition at line 1155 of file PostProcess.java. Referenced by removeEmptyBlock().
|
|
Insert the method's description here. Creation date: (00-12-20 13:56:57)
Definition at line 1203 of file PostProcess.java. Referenced by removeIrrelevantFields().
|
|
Remove irrelevant fileds for a class.
Definition at line 1253 of file PostProcess.java. Referenced by rmIrrelevantFds().
|
|
Remove one jump source from a jump target map.
Definition at line 1278 of file PostProcess.java. Referenced by modifyMethod().
|
|
Insert the method's description here. Creation date: (00-11-7 18:30:48)
Definition at line 1297 of file PostProcess.java. Referenced by removeEmptyTry().
|
|
Construct residual classes. Definition at line 1318 of file PostProcess.java. Referenced by Slicer::postProcessing().
|
|
Construct residual parameter for a given method.
Definition at line 1402 of file PostProcess.java. Referenced by rmIrrelevantParasForMd().
|
|
Change return types of methods in changeReturnTypeToVoidMds into void. Definition at line 1456 of file PostProcess.java. Referenced by resClassCons().
|
|
Remove irrelevant fields in every classes. Definition at line 1466 of file PostProcess.java. Referenced by resClassCons().
|
|
Remove irrelevant parameters for invoke expression. Definition at line 1479 of file PostProcess.java. Referenced by resClassCons().
|
|
Remove irrelevant parameters for method declaration. Definition at line 1498 of file PostProcess.java. Referenced by resClassCons().
|
|
Remove methods and classes in terms of given removable method map.
Definition at line 1526 of file PostProcess.java. Referenced by resClassCons().
|
|
Remove irrelevant parameters of invoke expressions in a given method.
Definition at line 1558 of file PostProcess.java. Referenced by rmIrrelevantParasForInvoke().
|
|
A list of SootMethod such that return value should be changed to return void due to the irrelevance of return value. Definition at line 68 of file PostProcess.java. |
|
A list of ClassInfo for each class. Definition at line 58 of file PostProcess.java. |
|
A set of Value which is relevant in the residual program. Definition at line 73 of file PostProcess.java. |
|
A list of ClassInfo which is sliced away. Definition at line 62 of file PostProcess.java. |