public FastFixedSet<E> getCopy() { FastFixedSet<E> copy = new FastFixedSet<>(factory); int arrlength = data.length; int[] cpdata = new int[arrlength]; System.arraycopy(data, 0, cpdata, 0, arrlength); copy.setData(cpdata); return copy; }
setFlagNodes.setAllElements(); initSet.setAllElements(); tmpSet.addAll(lst); tmpSet = initSet.getCopy(); if (!setFlagNodes.contains(stat)) { continue; setFlagNodes.remove(stat); domsSuccs.union(succlst); domsSuccs.intersection(succlst); if (!domsSuccs.contains(stat)) { domsSuccs.add(stat); setFlagNodes.add(pred); while (!setFlagNodes.isEmpty());
FastFixedSet<Integer> setReachabilityCopy = setReachability.getCopy(); if (predset.contains(id)) { if (!isIntersectionInitialized) { setIntersection.union(predset); isIntersectionInitialized = true; setIntersection.intersection(predset); setIntersection.add(nodeid); setIntersection.remove(nodeid); setReachabilityCopy.complement(setIntersection); mapExtPostdominators.get(id).complement(setReachabilityCopy); if (stat.getPredecessorEdges(Statement.STATEDGE_DIRECT_ALL).isEmpty() && setHandlers.add(stat.id); handlerfound = true; set.complement(setHandlers);
setFlagNodes.setAllElements(); initSet.setAllElements(); tmpSet.addAll(lst); tmpSet = initSet.getCopy(); if (!setFlagNodes.contains(stat)) { continue; setFlagNodes.remove(stat); domsSuccs.union(succlst); domsSuccs.intersection(succlst); if (!domsSuccs.contains(stat)) { domsSuccs.add(stat); setFlagNodes.add(pred); while (!setFlagNodes.isEmpty());
if (stat.getPredecessorEdges(Statement.STATEDGE_DIRECT_ALL).isEmpty() && setHandlers.add(stat.id); handlerfound = true; set.complement(setHandlers);
FastFixedSet<Integer> setReachabilityCopy = setReachability.getCopy(); if (predset.contains(id)) { if (!isIntersectionInitialized) { setIntersection.union(predset); isIntersectionInitialized = true; setIntersection.intersection(predset); setIntersection.add(nodeid); setIntersection.remove(nodeid); setReachabilityCopy.complement(setIntersection); mapExtPostdominators.get(id).complement(setReachabilityCopy);
public FastFixedSet<E> spawnEmptySet() { return new FastFixedSet<>(this); }
private void filterOnExceptionRanges(DominatorTreeExceptionFilter filter) { for (Integer head : new HashSet<>(mapExtPostdominators.keySet())) { FastFixedSet<Integer> set = mapExtPostdominators.get(head); for (Iterator<Integer> it = set.iterator(); it.hasNext(); ) { if (!filter.acceptStatementPair(head, it.next())) { it.remove(); } } if (set.isEmpty()) { mapExtPostdominators.remove(head); } } }
public boolean action(Statement node, HashMap<Integer, FastFixedSet<Integer>> mapSets) { Integer nodeid = node.id; FastFixedSet<Integer> setReachability = mapSets.get(nodeid); for (Integer id : setReachability) { mapExtPostdominators.get(id).add(nodeid); } return false; } }, edgetype);
public boolean equals(Object o) { if (o == this) return true; if (o == null || !(o instanceof FastFixedSet)) return false; int[] extdata = ((FastFixedSet)o).getData(); int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { if (intdata[i] != extdata[i]) { return false; } } return true; }
public void intersection(FastFixedSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { intdata[i] &= extdata[i]; } }
public void addAll(Collection<E> set) { for (E element : set) { add(element); } }
public FastFixedSet<E> getCopy() { FastFixedSet<E> copy = new FastFixedSet<>(factory); int arrlength = data.length; int[] cpdata = new int[arrlength]; System.arraycopy(data, 0, cpdata, 0, arrlength); copy.setData(cpdata); return copy; }
public void complement(FastFixedSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { intdata[i] &= ~extdata[i]; } }
public void symdiff(FastFixedSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { intdata[i] ^= extdata[i]; } }
public void union(FastFixedSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { intdata[i] |= extdata[i]; } }
private FastFixedSetIterator(FastFixedSet<E> set) { colValuesInternal = set.getFactory().getInternalValuesCollection(); data = set.getData(); size = colValuesInternal.size(); }
public boolean contains(FastFixedSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { if ((extdata[i] & ~intdata[i]) != 0) { return false; } } return true; }