public class OnFlyCallGraphBuilder.TraceBasedReflectionModel extends Object implements ReflectionModel
| Modifier and Type | Field and Description |
|---|---|
protected Set<soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.TraceBasedReflectionModel.Guard> |
guards |
protected ReflectionTraceInfo |
reflectionInfo |
| Modifier and Type | Method and Description |
|---|---|
void |
classForName(SootMethod container,
Stmt forNameInvokeStmt)
Adds an edge to all class initializers of all possible receivers of Class.forName() calls
within source.
|
void |
classNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds an edge to the constructor of the target class from this call to
Class.newInstance(). |
void |
contructorNewInstance(SootMethod container,
Stmt newInstanceInvokeStmt)
Adds a special edge of kind
Kind.REFL_CONSTR_NEWINSTANCE to all possible target
constructors of this call to Constructor.newInstance(Object...). |
void |
methodInvoke(SootMethod container,
Stmt invokeStmt)
Adds a special edge of kind
Kind.REFL_INVOKE to all possible target methods of this
call to Method.invoke(Object, Object...). |
protected Set<soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.TraceBasedReflectionModel.Guard> guards
protected ReflectionTraceInfo reflectionInfo
public void classForName(SootMethod container, Stmt forNameInvokeStmt)
classForName in interface ReflectionModelpublic void classNewInstance(SootMethod container, Stmt newInstanceInvokeStmt)
Class.newInstance().classNewInstance in interface ReflectionModelpublic void contructorNewInstance(SootMethod container, Stmt newInstanceInvokeStmt)
Kind.REFL_CONSTR_NEWINSTANCE to all possible target
constructors of this call to Constructor.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 of Constructor.newInstance(Object...).contructorNewInstance in interface ReflectionModelPAG.addCallTarget(Edge)public void methodInvoke(SootMethod container, Stmt invokeStmt)
Kind.REFL_INVOKE to all possible target methods of this
call to Method.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 of Method.invoke(Object, Object...).methodInvoke in interface ReflectionModelPAG.addCallTarget(Edge)Copyright © 2020 Soot OSS. All rights reserved.