protected void internalTransform(String phaseName, Map<String, String> opts) { CHAOptions options = new CHAOptions(opts); CallGraphBuilder cg = options.apponly() ? new CallGraphBuilder() : new CallGraphBuilder(DumbPointerAnalysis.v()); cg.build(); if (options.verbose()) { logger.debug("" + "Number of reachable methods: " + Scene.v().getReachableMethods().size()); } } }
cg = Scene.v().getCallGraph(); } else { new CallGraphBuilder().build(); cg = Scene.v().getCallGraph(); Scene.v().releaseCallGraph();
/** Creates an empty pointer assignment graph. */ public PAG setup(SparkOptions opts) { pag = opts.geom_pta() ? new GeomPointsTo(opts) : new PAG(opts); if (opts.simulate_natives()) { pag.nativeMethodDriver = new NativeMethodDriver(new SparkNativeHelper(pag)); } if (opts.on_fly_cg() && !opts.vta()) { ofcg = new OnFlyCallGraph(pag, opts.apponly()); pag.setOnFlyCallGraph(ofcg); } else { cgb = new CallGraphBuilder(DumbPointerAnalysis.v()); } return pag; }
CallGraphBuilder cgb = new CallGraphBuilder(pag); cgb.build();
protected void internalTransform(String phaseName, Map opts) { CHAOptions options = new CHAOptions( opts ); CallGraphBuilder cg = new CallGraphBuilder( DumbPointerAnalysis.v() ); cg.build(); if( options.verbose() ) { G.v().out.println( "Number of reachable methods: " +Scene.v().getReachableMethods().size() ); } } }
protected void internalTransform(String phaseName, Map opts) { CHAOptions options = new CHAOptions( opts ); CallGraphBuilder cg = new CallGraphBuilder( DumbPointerAnalysis.v() ); cg.build(); if( options.verbose() ) { G.v().out.println( "Number of reachable methods: " +Scene.v().getReachableMethods().size() ); } } }