public void runBodyPacks() { runBodyPacks(reachableClasses()); }
private void runBodyPacks(final Iterator<SootClass> classes) { int threadNum = Runtime.getRuntime().availableProcessors(); CountingThreadPoolExecutor executor = new CountingThreadPoolExecutor(threadNum, threadNum, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); while (classes.hasNext()) { final SootClass c = classes.next(); executor.execute(() -> runBodyPacks(c)); } // Wait till all packs have been executed try { executor.awaitCompletion(); executor.shutdown(); } catch (InterruptedException e) { // Something went horribly wrong throw new RuntimeException("Could not wait for pack threads to " + "finish: " + e.getMessage(), e); } // If something went wrong, we tell the world if (executor.getException() != null) { if (executor.getException() instanceof RuntimeException) { throw (RuntimeException) executor.getException(); } else { throw new RuntimeException(executor.getException()); } } }
runBodyPacks(); handleInnerClasses();
runBodyPacks(clazz);
private void runBodyPacks( Iterator classes ) { while( classes.hasNext() ) { SootClass cl = (SootClass) classes.next(); runBodyPacks( cl ); } }
private void runBodyPacks( Iterator classes ) { while( classes.hasNext() ) { SootClass cl = (SootClass) classes.next(); runBodyPacks( cl ); } }
public void runBodyPacks() { runBodyPacks( reachableClasses() ); }
public void runBodyPacks() { runBodyPacks( reachableClasses() ); }
public void runPacks() { if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){ LineNumberAdder lineNumAdder = LineNumberAdder.v(); lineNumAdder.internalTransform("", null); } retrieveAllBodies(); if (Options.v().interactive_mode()){ if (InteractionHandler.v().getInteractionListener() == null){ G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode."); Options.v().set_interactive_mode(false); } else { G.v().out.println("Running in interactive mode."); } } runBodyPacks(); handleInnerClasses(); }
public void runPacks() { if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){ LineNumberAdder lineNumAdder = LineNumberAdder.v(); lineNumAdder.internalTransform("", null); } retrieveAllBodies(); if (Options.v().interactive_mode()){ if (InteractionHandler.v().getInteractionListener() == null){ G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode."); Options.v().set_interactive_mode(false); } else { G.v().out.println("Running in interactive mode."); } } runBodyPacks(); handleInnerClasses(); }