@Override public Collection<Unit> load(SootMethod m) throws Exception { ArrayList<Unit> res = new ArrayList<Unit>(); // only retain callers that are explicit call sites or // Thread.start() Iterator<Edge> edgeIter = new EdgeFilter().wrap(cg.edgesInto(m)); while (edgeIter.hasNext()) { Edge edge = edgeIter.next(); res.add(edge.srcUnit()); } res.trimToSize(); return res; } };
private ArrayList<MethInfo> getSrcMethods(SootMethod method, boolean recurse) { // logger.debug("meth for srcs: "+method); ArrayList<MethInfo> list = new ArrayList<MethInfo>(); for (Iterator momcIt = methodToContexts.get(method).iterator(); momcIt.hasNext();) { final MethodOrMethodContext momc = (MethodOrMethodContext) momcIt.next(); Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()) { Edge callEdge = (Edge) callerEdges.next(); SootMethod methodCaller = callEdge.src(); if (methodCaller.getDeclaringClass().isLibraryClass()) { if (isShowLibMeths()) { if (recurse) { list.add( new MethInfo(methodCaller, hasTgtMethods(methodCaller) | hasSrcMethods(methodCaller), callEdge.kind())); } else { list.add(new MethInfo(methodCaller, true, callEdge.kind())); } } } else { if (recurse) { list.add(new MethInfo(methodCaller, hasTgtMethods(methodCaller) | hasSrcMethods(methodCaller), callEdge.kind())); } else { list.add(new MethInfo(methodCaller, true, callEdge.kind())); } } } } return list; }
Iterator edgeIt = cg.edgesInto(end); while (edgeIt.hasNext()) { Edge e = (Edge) edgeIt.next();
for (Iterator momcIt = methodToContexts.get(m).iterator(); momcIt.hasNext();) { final MethodOrMethodContext momc = (MethodOrMethodContext) momcIt.next(); Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()) { Edge callEdge = (Edge) callerEdges.next();
Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()) { Edge callEdge = (Edge) callerEdges.next();
Iterator<Edge> edges = Scene.v().getCallGraph() .edgesInto(AnalysisParameters.v().getIcfg().getMethodOf(assignStmt)); while (edges.hasNext()) { Edge edge = edges.next();
Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next();
Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next();
Iterator<Edge> edges = Scene.v().getCallGraph() .edgesInto(AnalysisParameters.v().getIcfg().getMethodOf(assignStmt)); while (edges.hasNext()) { Edge edge = edges.next();
Iterator edgeIt = cg.edgesInto(end); while(edgeIt.hasNext())
Iterator edgeIt = cg.edgesInto(end); while(edgeIt.hasNext())
for( Iterator momcIt = methodToContexts.get(m).iterator(); momcIt.hasNext(); ) { final MethodOrMethodContext momc = (MethodOrMethodContext) momcIt.next(); Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next();
for( Iterator momcIt = methodToContexts.get(m).iterator(); momcIt.hasNext(); ) { final MethodOrMethodContext momc = (MethodOrMethodContext) momcIt.next(); Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next();
Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next();
Iterator callerEdges = cg.edgesInto(momc); while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next();