protected void ensureProcessed(SootMethod m) { if (processedMethods.contains(m)) { return; } processedMethods.add(m); if (!m.isConcrete()) { return; } if (m.isPhantom()) { return; } for (Iterator sIt = m.retrieveActiveBody().getUnits().iterator(); sIt.hasNext();) { final Stmt s = (Stmt) sIt.next(); if (s instanceof AssignStmt) { AssignStmt as = (AssignStmt) s; Value l = as.getLeftOp(); if (l instanceof FieldRef) { methodToWrite.put(m, ((FieldRef) l).getField()); } Value r = as.getRightOp(); if (r instanceof FieldRef) { methodToRead.put(m, ((FieldRef) r).getField()); } } } }
callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); addEdge(baseNode, thisRef); Pair<Node, Node> pval = addInterproceduralAssignment(baseNode, thisRef, e); callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); if (virtualCall && !virtualCallsToReceivers.containsKey(ie)) { callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod());
callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); callAssigns.put(s.getInvokeExpr(), pval); callToMethod.put(s.getInvokeExpr(), srcmpag.getMethod()); } else if (e.kind() == Kind.REFL_INVOKE) { callAssigns.put(ie, pval); callToMethod.put(ie, srcmpag.getMethod()); callAssigns.put(ie, pval); callAssigns.put(ie, pval); callAssigns.put(iie, pval); callAssigns.put(s.getInvokeExpr(), pval); callToMethod.put(s.getInvokeExpr(), srcmpag.getMethod()); } else {