/** * Returns the processes that have been removed from the given * launch, or <code>null</code> if none. * * @param launch launch that has changed * @return removed processes or <code>null</code> */ private List<IProcess> getRemovedProcesses(ILaunch launch) { List<IProcess> removed = null; if (fProcesses == null) { fProcesses = new HashMap<>(); } IProcess[] old = fProcesses.get(launch); IProcess[] curr = launch.getProcesses(); if (old != null) { for (int i = 0; i < old.length; i++) { IProcess process = old[i]; if (!contains(curr, process)) { if (removed == null) { removed = new ArrayList<>(); } removed.add(process); } } } // update cache with current processes fProcesses.put(launch, curr); return removed; }