| 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.javaToJimple.AbstractJimpleBodyBuilder
soot.javaToJimple.JimpleBodyBuilder
public class JimpleBodyBuilder
| Field Summary | |
|---|---|
protected  List<List<Stmt>> | 
afterReturn
 | 
protected  List<List<Stmt>> | 
beforeReturn
 | 
protected  Stack<polyglot.ast.Try> | 
catchStack
 | 
protected  Stack<Stmt> | 
condControlNoop
 | 
protected  Stack<Stmt> | 
endControlNoop
 | 
protected  ArrayList<Trap> | 
exceptionTable
 | 
protected  Stack<Stmt> | 
falseNoop
 | 
protected  HashMap | 
getThisMap
 | 
protected  HashMap<String,Stmt> | 
labelBreakMap
 | 
protected  HashMap<String,Stmt> | 
labelContinueMap
 | 
protected  HashMap<polyglot.ast.Stmt,Stmt> | 
labelMap
 | 
protected  LocalGenerator | 
lg
 | 
protected  HashMap<polyglot.util.IdentityKey,Local> | 
localsMap
 | 
protected  Stack<Value> | 
monitorStack
 | 
protected  Local | 
outerClassParamLocal
 | 
protected  int | 
paramRefCount
 | 
protected  Local | 
specialThisLocal
 | 
protected  Stack<Stmt> | 
trueNoop
 | 
protected  Stack<polyglot.ast.Try> | 
tryStack
 | 
| Fields inherited from class soot.javaToJimple.AbstractJimpleBodyBuilder | 
|---|
body | 
| Constructor Summary | |
|---|---|
JimpleBodyBuilder()
 | 
|
| Method Summary | |
|---|---|
protected  Value | 
createAggressiveExpr(polyglot.ast.Expr expr,
                     boolean reduceAggressively,
                     boolean reverseCondIfNec)
Aggressive Expression Creation make reduceAggressively true to not reduce all the way to a local  | 
 Constant | 
createConstant(polyglot.ast.Expr expr)
 | 
 JimpleBody | 
createJimpleBody(polyglot.ast.Block block,
                 List formals,
                 SootMethod sootMethod)
Jimple Body Creation  | 
protected  Value | 
createLHS(polyglot.ast.Expr expr)
create LHS expressions  | 
protected  void | 
createStmt(polyglot.ast.Stmt stmt)
Stmt creation  | 
protected  Local | 
generateLocal(polyglot.types.Type polyglotType)
Extra Local Variables Generation  | 
protected  Local | 
generateLocal(Type sootType)
 | 
protected  Value | 
getAssignLocal(polyglot.ast.Assign assign)
Assign Expression Creation  | 
protected  Value | 
getAssignRightLocal(polyglot.ast.Assign assign,
                    Local leftLocal)
 | 
protected  Value | 
getBaseLocal(polyglot.ast.Receiver receiver)
 | 
protected  Constant | 
getConstant(Type type,
            int val)
Returns a needed constant given a type and val  | 
protected  FieldRef | 
getFieldRef(polyglot.ast.Field field)
creates a field ref  | 
protected  Value | 
getSimpleAssignRightLocal(polyglot.ast.Assign assign)
 | 
protected  SootMethodRef | 
getSootMethodRef(polyglot.ast.Call call)
 | 
protected  Local | 
getThis(Type sootType)
 | 
protected  void | 
handleFieldInits(ArrayList<polyglot.ast.FieldDecl> fieldInits)
 | 
protected  Local | 
handlePrivateFieldAssignSet(polyglot.ast.Assign assign)
 | 
protected  Local | 
handlePrivateFieldSet(polyglot.ast.Expr expr,
                      Value right,
                      Value base)
 | 
protected  Local | 
handlePrivateFieldUnarySet(polyglot.ast.Unary unary)
 | 
protected  void | 
handleStaticBlocks(ArrayList<polyglot.ast.Block> initializerBlocks)
 | 
protected  boolean | 
needsAccessor(polyglot.ast.Expr expr)
 | 
protected  boolean | 
needsAccessor(polyglot.types.MemberInstance inst)
needs accessors: when field or meth is private and in some other class when field or meth is protected and in  | 
protected  boolean | 
needsOuterClassRef(polyglot.types.ClassType typeToInvoke)
 | 
| Methods inherited from class soot.javaToJimple.AbstractJimpleBodyBuilder | 
|---|
base, base, ext, ext | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
protected List<List<Stmt>> beforeReturn
protected List<List<Stmt>> afterReturn
protected ArrayList<Trap> exceptionTable
protected Stack<Stmt> endControlNoop
protected Stack<Stmt> condControlNoop
protected Stack<Value> monitorStack
protected Stack<polyglot.ast.Try> tryStack
protected Stack<polyglot.ast.Try> catchStack
protected Stack<Stmt> trueNoop
protected Stack<Stmt> falseNoop
protected HashMap<String,Stmt> labelBreakMap
protected HashMap<String,Stmt> labelContinueMap
protected HashMap<polyglot.ast.Stmt,Stmt> labelMap
protected HashMap<polyglot.util.IdentityKey,Local> localsMap
protected HashMap getThisMap
protected Local specialThisLocal
protected Local outerClassParamLocal
protected int paramRefCount
protected LocalGenerator lg
| Constructor Detail | 
|---|
public JimpleBodyBuilder()
| Method Detail | 
|---|
public JimpleBody createJimpleBody(polyglot.ast.Block block,
                                   List formals,
                                   SootMethod sootMethod)
createJimpleBody in class AbstractJimpleBodyBuilderprotected void handleFieldInits(ArrayList<polyglot.ast.FieldDecl> fieldInits)
protected void handleStaticBlocks(ArrayList<polyglot.ast.Block> initializerBlocks)
protected void createStmt(polyglot.ast.Stmt stmt)
createStmt in class AbstractJimpleBodyBuilderpublic Constant createConstant(polyglot.ast.Expr expr)
protected Value createAggressiveExpr(polyglot.ast.Expr expr,
                                     boolean reduceAggressively,
                                     boolean reverseCondIfNec)
createAggressiveExpr in class AbstractJimpleBodyBuilderprotected Local handlePrivateFieldUnarySet(polyglot.ast.Unary unary)
handlePrivateFieldUnarySet in class AbstractJimpleBodyBuilderprotected Local handlePrivateFieldAssignSet(polyglot.ast.Assign assign)
handlePrivateFieldAssignSet in class AbstractJimpleBodyBuilder
protected Local handlePrivateFieldSet(polyglot.ast.Expr expr,
                                      Value right,
                                      Value base)
handlePrivateFieldSet in class AbstractJimpleBodyBuilder
protected Value getAssignRightLocal(polyglot.ast.Assign assign,
                                    Local leftLocal)
getAssignRightLocal in class AbstractJimpleBodyBuilderprotected Value getSimpleAssignRightLocal(polyglot.ast.Assign assign)
getSimpleAssignRightLocal in class AbstractJimpleBodyBuilderprotected Value getAssignLocal(polyglot.ast.Assign assign)
protected boolean needsAccessor(polyglot.ast.Expr expr)
needsAccessor in class AbstractJimpleBodyBuilderprotected boolean needsAccessor(polyglot.types.MemberInstance inst)
protected FieldRef getFieldRef(polyglot.ast.Field field)
getFieldRef in class AbstractJimpleBodyBuilder
protected Constant getConstant(Type type,
                               int val)
getConstant in class AbstractJimpleBodyBuilderprotected Local getThis(Type sootType)
getThis in class AbstractJimpleBodyBuilderprotected boolean needsOuterClassRef(polyglot.types.ClassType typeToInvoke)
protected SootMethodRef getSootMethodRef(polyglot.ast.Call call)
getSootMethodRef in class AbstractJimpleBodyBuilderprotected Value getBaseLocal(polyglot.ast.Receiver receiver)
getBaseLocal in class AbstractJimpleBodyBuilderprotected Value createLHS(polyglot.ast.Expr expr)
createLHS in class AbstractJimpleBodyBuilderprotected Local generateLocal(polyglot.types.Type polyglotType)
generateLocal in class AbstractJimpleBodyBuilderprotected Local generateLocal(Type sootType)
generateLocal in class AbstractJimpleBodyBuilder
  | 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||