Package soot.jimple.toolkits.callgraph
Class OnFlyCallGraphBuilder.TraceBasedReflectionModel
- java.lang.Object
-
- soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.TraceBasedReflectionModel
-
- All Implemented Interfaces:
ReflectionModel
- Enclosing class:
- OnFlyCallGraphBuilder
public class OnFlyCallGraphBuilder.TraceBasedReflectionModel extends Object implements ReflectionModel
-
-
Field Summary
Fields Modifier and Type Field Description protected Set<soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.Guard>guardsprotected ReflectionTraceInforeflectionInfo
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclassForName(SootMethod container, Stmt forNameInvokeStmt)Adds an edge to all class initializers of all possible receivers of Class.forName() calls within source.voidclassNewInstance(SootMethod container, Stmt newInstanceInvokeStmt)Adds an edge to the constructor of the target class from this call toClass.newInstance().voidcontructorNewInstance(SootMethod container, Stmt newInstanceInvokeStmt)Adds a special edge of kindKind.REFL_CONSTR_NEWINSTANCEto all possible target constructors of this call toConstructor#newInstance(Object...).voidmethodInvoke(SootMethod container, Stmt invokeStmt)Adds a special edge of kindKind.REFL_INVOKEto all possible target methods of this call toMethod#invoke(Object, Object...).
-
-
-
Field Detail
-
guards
protected final Set<soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.Guard> guards
-
reflectionInfo
protected final ReflectionTraceInfo reflectionInfo
-
-
Method Detail
-
classForName
public void classForName(SootMethod container, Stmt forNameInvokeStmt)
Adds an edge to all class initializers of all possible receivers of Class.forName() calls within source.- Specified by:
classForNamein interfaceReflectionModel
-
classNewInstance
public void classNewInstance(SootMethod container, Stmt newInstanceInvokeStmt)
Adds an edge to the constructor of the target class from this call toClass.newInstance().- Specified by:
classNewInstancein interfaceReflectionModel
-
contructorNewInstance
public void contructorNewInstance(SootMethod container, Stmt newInstanceInvokeStmt)
Adds a special edge of kindKind.REFL_CONSTR_NEWINSTANCEto all possible target constructors of this call toConstructor#newInstance(Object...). Those kinds of edges are treated specially in terms of how parameters are assigned, as parameters to the reflective call are passed into the argument array ofConstructor#newInstance(Object...).- Specified by:
contructorNewInstancein interfaceReflectionModel- See Also:
PAG#addCallTarget(Edge)
-
methodInvoke
public void methodInvoke(SootMethod container, Stmt invokeStmt)
Adds a special edge of kindKind.REFL_INVOKEto all possible target methods of this call toMethod#invoke(Object, Object...). Those kinds of edges are treated specially in terms of how parameters are assigned, as parameters to the reflective call are passed into the argument array ofMethod#invoke(Object, Object...).- Specified by:
methodInvokein interfaceReflectionModel- See Also:
PAG#addCallTarget(Edge)
-
-