private void processNewMethodContext(MethodOrMethodContext momc) { SootMethod m = momc.method(); Iterator<Edge> it = cicg.edgesOutOf(m); while (it.hasNext()) { Edge e = it.next(); cm.addStaticEdge(momc, e.srcUnit(), e.tgt(), e.kind()); } }
private void resolveStaticTypes(Set<Type> s, InvokeCallSite ics) { ArrayTypes at = ics.reachingTypes(); for (Type bType : resolveToClasses(s)) { SootClass baseClass = ((RefType) bType).getSootClass(); Iterator<SootMethod> mIt = getPublicMethodIterator(baseClass, at); while (mIt.hasNext()) { SootMethod sm = mIt.next(); cm.addVirtualEdge(ics.container(), ics.stmt(), sm, Kind.REFL_INVOKE, null); } } }
public OnFlyCallGraph(PAG pag, boolean appOnly) { this.pag = pag; callGraph = Scene.v().internalMakeCallGraph(); Scene.v().setCallGraph(callGraph); ContextManager cm = CallGraphBuilder.makeContextManager(callGraph); reachableMethods = Scene.v().getReachableMethods(); ofcgb = new OnFlyCallGraphBuilder(cm, reachableMethods, appOnly); reachablesReader = reachableMethods.listener(); callEdges = cm.callGraph().listener(); }
cm.addStaticEdge(MethodContext.v(site.container(), srcContext), site.stmt(), clinit, Kind.CLINIT);
while (mIt.hasNext()) { SootMethod sm = mIt.next(); cm.addVirtualEdge(ics.container(), ics.stmt(), sm, Kind.REFL_INVOKE, null); while (mIt.hasNext()) { SootMethod sm = mIt.next(); cm.addVirtualEdge(ics.container(), ics.stmt(), sm, Kind.REFL_INVOKE, null);
private void processNewMethodContext( MethodOrMethodContext momc ) { SootMethod m = momc.method(); Object ctxt = momc.context(); Iterator it = cicg.edgesOutOf(m); while( it.hasNext() ) { Edge e = (Edge) it.next(); cm.addStaticEdge( momc, e.srcUnit(), e.tgt(), e.kind() ); } }
cm.addVirtualEdge(MethodContext.v(site.container(), srcContext), site.stmt(), target, site.kind(), typeContext);
private void processNewMethodContext( MethodOrMethodContext momc ) { SootMethod m = momc.method(); Object ctxt = momc.context(); Iterator it = cicg.edgesOutOf(m); while( it.hasNext() ) { Edge e = (Edge) it.next(); cm.addStaticEdge( momc, e.srcUnit(), e.tgt(), e.kind() ); } }
cm.addVirtualEdge( MethodContext.v( site.container(), srcContext ), site.stmt(),
cm.addStaticEdge( MethodContext.v( site.container(), srcContext ), site.stmt(),
cm.addVirtualEdge( MethodContext.v( site.container(), srcContext ), site.stmt(),
cm.addStaticEdge( MethodContext.v( site.container(), srcContext ), site.stmt(),