/** * Gets the number of entries in this result object * * @return The number of entries in this result object */ public int size() { return this.results == null ? 0 : this.results.size(); }
/** * Gets the data flow results in a flat set * * @return The data flow results in a flat set. If no data flows are available, * the return value is null. */ public Set<DataFlowResult> getResultSet() { if (results == null || results.isEmpty()) return null; Set<DataFlowResult> set = new HashSet<>(results.size() * 10); for (ResultSinkInfo sink : results.keySet()) { for (ResultSourceInfo source : results.get(sink)) set.add(new DataFlowResult(source, sink)); } return set; }
callbackWorklist.size())); for (Iterator<SootClass> classIt = callbackWorklist.keySet().iterator(); classIt.hasNext();) {
/** * Reverses all data flows in this data object * * @return A new data object with all flows reversed */ public MethodSummaries reverse() { MultiMap<String, MethodFlow> reversedFlows = new HashMultiMap<>(flows.size()); for (String className : flows.keySet()) { for (MethodFlow flow : flows.get(className)) reversedFlows.put(className, flow.reverse()); } return new MethodSummaries(reversedFlows, clears, gaps); }
logger.info("start processing {} infoflow abstractions for method {}", collectedAbstractions.size(), method); final SootMethod m = Scene.v().grabMethod(method); if (m == null)