/** * Bodies - we can now start loading the bodies of methods for all referred to methods and fields in the bodies, requires * signatures for the method receiver and field container, and hierarchy for all other classes referenced in method * references. Current implementation does not distinguish between the receiver and other references. Therefore, it is * conservative and brings all of them to signatures. But this could/should be improved. */ protected void bringToBodies(SootClass sc) { if (sc.resolvingLevel() >= SootClass.BODIES) { return; } bringToSignatures(sc); if (Options.v().debug_resolver()) { logger.debug("bringing to BODIES: " + sc); } sc.setResolvingLevel(SootClass.BODIES); bringToBodiesUnchecked(sc); }
&& !Scene.v().getBasicClasses().contains(sc.getName())); if (onlySignatures) { bringToSignatures(sc); sc.setPhantomClass(); for (SootMethod m : sc.getMethods()) { break; case SootClass.SIGNATURES: bringToSignatures(sc); break; case SootClass.HIERARCHY:
bringToSignatures(sc); if(Options.v().debug_resolver()) G.v().out.println("bringing to BODIES: "+sc);
bringToSignatures(sc); if(Options.v().debug_resolver()) G.v().out.println("bringing to BODIES: "+sc);
); if( onlySignatures ) { bringToSignatures(sc); sc.setPhantomClass(); if(sc.isPhantom()) { switch(i) { case SootClass.BODIES: bringToBodies(sc); break; case SootClass.SIGNATURES: bringToSignatures(sc); break; case SootClass.HIERARCHY: bringToHierarchy(sc); break;
); if( onlySignatures ) { bringToSignatures(sc); sc.setPhantomClass(); if(sc.isPhantom()) { switch(i) { case SootClass.BODIES: bringToBodies(sc); break; case SootClass.SIGNATURES: bringToSignatures(sc); break; case SootClass.HIERARCHY: bringToHierarchy(sc); break;