for (Iterator edgesIt = Scene.v().getCallGraph().edgesOutOf(containingMethod); edgesIt.hasNext();) { Edge e = (Edge) edgesIt.next(); if (!e.src().getDeclaringClass().isApplicationClass() || e.srcStmt() == null) { continue;
SootMethod src = anyEdge.src();
while (callerEdges.hasNext()) { Edge callEdge = (Edge) callerEdges.next(); SootMethod methodCaller = callEdge.src(); Host src = methodCaller; if (callEdge.srcUnit() != null) {
return; MethodPAG srcmpag = MethodPAG.v(this, e.src()); MethodPAG tgtmpag = MethodPAG.v(this, e.tgt()); Pair<Node, Node> pval;
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; }
while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next(); SootMethod methodCaller = callEdge.src(); Host src = methodCaller; if( callEdge.srcUnit() != null ) {
while (edgeIt.hasNext()) { Edge e = (Edge) edgeIt.next(); SootMethod node = e.src(); if (!path.containsMethod(node) && e.isExplicit() && e.srcStmt().containsInvokeExpr()) {
SootMethod src = anyEdge.src();
while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next(); SootMethod methodCaller = callEdge.src(); Host src = methodCaller; if( callEdge.srcUnit() != null ) {
SootMethod callingMethod = e.src(); List<SootClass> exceptionList = callingMethod.getExceptions(); IterableSet exceptionSet = new IterableSet(exceptionList);
Edge edge = (Edge) edgeInIt.next(); if (edge.kind() != Kind.THREAD && edge.kind() != Kind.EXECUTOR && edge.kind() != Kind.ASYNCTASK && thread.containsMethod(edge.src())) { ignoremethod = false;
SootMethod src_func = edge.src(); SootMethod tgt_func = edge.tgt(); s = func2int.get(src_func);
continue; SootMethod methodCaller = callEdge.src();
else if (e.kind() == Kind.VIRTUAL) { if (!e.src().isStatic() && e.srcStmt().getInvokeExpr() instanceof InstanceInvokeExpr) { SootMethod refMethod = e.srcStmt().getInvokeExpr().getMethod(); InstanceInvokeExpr iinv = (InstanceInvokeExpr) e.srcStmt().getInvokeExpr(); if (iinv.getBase() == e.src().getActiveBody().getThisLocal()) {
while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next(); SootMethod methodCaller = callEdge.src(); if (methodCaller.getDeclaringClass().isLibraryClass()){ if (isShowLibMeths()){
while (callerEdges.hasNext()){ Edge callEdge = (Edge)callerEdges.next(); SootMethod methodCaller = callEdge.src(); if (methodCaller.getDeclaringClass().isLibraryClass()){ if (isShowLibMeths()){
Edge callEdge = (Edge)callerEdges.next(); if (!callEdge.isExplicit()) continue; SootMethod methodCaller = callEdge.src();
Edge callEdge = (Edge)callerEdges.next(); if (!callEdge.isExplicit()) continue; SootMethod methodCaller = callEdge.src();