/** * This constructor builds a complete call graph using the given PointsToAnalysis to resolve virtual calls. */ public CallGraphBuilder(PointsToAnalysis pa) { this.pa = pa; cg = Scene.v().internalMakeCallGraph(); Scene.v().setCallGraph(cg); reachables = Scene.v().getReachableMethods(); ContextManager cm = makeContextManager(cg); ofcgb = new OnFlyCallGraphBuilder(cm, reachables); }
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(); }
/** This constructor builds a complete call graph using the given * PointsToAnalysis to resolve virtual calls. */ public CallGraphBuilder( PointsToAnalysis pa ) { this.pa = pa; cg = new CallGraph(); Scene.v().setCallGraph( cg ); reachables = Scene.v().getReachableMethods(); ContextManager cm = makeContextManager(cg); ofcgb = new OnFlyCallGraphBuilder( cm, reachables ); } /** This constructor builds the incomplete hack call graph for the
/** This constructor builds a complete call graph using the given * PointsToAnalysis to resolve virtual calls. */ public CallGraphBuilder( PointsToAnalysis pa ) { this.pa = pa; cg = new CallGraph(); Scene.v().setCallGraph( cg ); reachables = Scene.v().getReachableMethods(); ContextManager cm = makeContextManager(cg); ofcgb = new OnFlyCallGraphBuilder( cm, reachables ); } /** This constructor builds the incomplete hack call graph for the