@Override public void removeOutgoingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } successors.removeAll(number); hasSuccessor.clear(number); }
@Override public void removeEdge(T src, T dst) throws IllegalArgumentException { final int srcNumber = nodeManager.getNumber(src); final int dstNumber = nodeManager.getNumber(dst); if (srcNumber < 0) { throw new IllegalArgumentException("src not in graph: " + src); } if (dstNumber < 0) { throw new IllegalArgumentException("dst not in graph: " + dst); } successors.remove(srcNumber, dstNumber); if (successors.getRelatedCount(srcNumber) == 0) { hasSuccessor.clear(srcNumber); } predecessors.remove(dstNumber, srcNumber); }
@Override public void removeOutgoingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } successors.removeAll(number); hasSuccessor.clear(number); }
@Override public void removeEdge(CGNode src, CGNode dst) { int x = getNumber(src); int y = getNumber(dst); predecessors.remove(y, x); }
@Override public void removeOutgoingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } successors.removeAll(number); hasSuccessor.clear(number); }
@Override public void removeEdge(CGNode src, CGNode dst) { int x = getNumber(src); int y = getNumber(dst); predecessors.remove(y, x); }
@Override public void removeAllIncidentEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } successors.removeAll(number); hasSuccessor.clear(number); predecessors.removeAll(number); }
@Override public void removeEdge(T src, T dst) throws IllegalArgumentException { final int srcNumber = nodeManager.getNumber(src); final int dstNumber = nodeManager.getNumber(dst); if (srcNumber < 0) { throw new IllegalArgumentException("src not in graph: " + src); } if (dstNumber < 0) { throw new IllegalArgumentException("dst not in graph: " + dst); } successors.remove(srcNumber, dstNumber); if (successors.getRelatedCount(srcNumber) == 0) { hasSuccessor.clear(srcNumber); } predecessors.remove(dstNumber, srcNumber); }
@Override public void removeIncomingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } predecessors.removeAll(number); }
@Override public void removeEdge(T src, T dst) throws IllegalArgumentException { final int srcNumber = nodeManager.getNumber(src); final int dstNumber = nodeManager.getNumber(dst); if (srcNumber < 0) { throw new IllegalArgumentException("src not in graph: " + src); } if (dstNumber < 0) { throw new IllegalArgumentException("dst not in graph: " + dst); } successors.remove(srcNumber, dstNumber); if (successors.getRelatedCount(srcNumber) == 0) { hasSuccessor.clear(srcNumber); } predecessors.remove(dstNumber, srcNumber); }
@Override public void removeIncomingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } predecessors.removeAll(number); }
private void removeImplicitStatement(UnaryStatement<PointsToSetVariable> eq) { if (DEBUG) { System.err.println(("removeImplicitStatement " + eq)); } int lhs = eq.getLHS().getGraphNodeId(); int rhs = eq.getRightHandSide().getGraphNodeId(); if (DEBUG) { System.err.println(("lhs rhs " + lhs + ' ' + rhs)); } IBinaryNaturalRelation R = findOrCreateRelation(implicitUnaryMap, eq.getOperator()); R.remove(lhs, rhs); IBinaryNaturalRelation iR = findOrCreateRelation(invImplicitUnaryMap, eq.getOperator()); iR.remove(rhs, lhs); implicitUnaryCount--; }
@Override public void removeIncomingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } predecessors.removeAll(number); }
private void removeImplicitStatement(UnaryStatement<PointsToSetVariable> eq) { if (DEBUG) { System.err.println(("removeImplicitStatement " + eq)); } int lhs = eq.getLHS().getGraphNodeId(); int rhs = eq.getRightHandSide().getGraphNodeId(); if (DEBUG) { System.err.println(("lhs rhs " + lhs + ' ' + rhs)); } IBinaryNaturalRelation R = findOrCreateRelation(implicitUnaryMap, eq.getOperator()); R.remove(lhs, rhs); IBinaryNaturalRelation iR = findOrCreateRelation(invImplicitUnaryMap, eq.getOperator()); iR.remove(rhs, lhs); implicitUnaryCount--; }
@Override public void removeAllIncidentEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } successors.removeAll(number); hasSuccessor.clear(number); predecessors.removeAll(number); }
@Override public void removeAllIncidentEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } successors.removeAll(number); hasSuccessor.clear(number); predecessors.removeAll(number); }