private static boolean hasSingleEdgeEnteringBlock(final ControlFlowNode node) { int count = 0; for (final ControlFlowEdge edge : node.getIncoming()) { if (!node.dominates(edge.getSource())) { if (++count > 1) { return false; } } } return count == 1; }
private void reconstructEdges(final ControlFlowNode oldNode, final ControlFlowNode newNode) { for (final ControlFlowEdge oldEdge : oldNode.getOutgoing()) { createEdge(newNode, getNew(oldEdge.getTarget()), oldEdge.getType()); } }
@Override public boolean test(final HandlerInfo o) { return o.handlerNode.getEndFinallyNode() == edge.getSource(); } }
private static String nodeName(final ControlFlowNode node) { String name = "node" + node.getBlockIndex(); if (node.getNodeType() == ControlFlowNodeType.EndFinally) { name += "_ef"; } return name; }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == other; } }
@Override public final String toString() { switch (_type) { case Normal: return "#" + _target.getBlockIndex(); case JumpToExceptionHandler: return "e:#" + _target.getBlockIndex(); default: return _type + ":#" + _target.getBlockIndex(); } } }
@Override public final Iterable<ControlFlowNode> apply(final ControlFlowNode input) { return input.getDominatorTreeChildren(); } },
@Override public boolean test(final ControlFlowNode node) { return node.isReachable(); } };
private void reconstructEdges(final ControlFlowNode oldNode, final ControlFlowNode newNode) { for (final ControlFlowEdge oldEdge : oldNode.getOutgoing()) { createEdge(newNode, getNew(oldEdge.getTarget()), oldEdge.getType()); } }
private static boolean hasSingleEdgeEnteringBlock(final ControlFlowNode node) { int count = 0; for (final ControlFlowEdge edge : node.getIncoming()) { if (!node.dominates(edge.getSource())) { if (++count > 1) { return false; } } } return count == 1; }
@Override public boolean test(final HandlerInfo o) { return o.handlerNode.getEndFinallyNode() == edge.getSource(); } }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == other; } }
private void reconstructEdges(final ControlFlowNode oldNode, final ControlFlowNode newNode) { for (final ControlFlowEdge oldEdge : oldNode.getOutgoing()) { createEdge(newNode, getNew(oldEdge.getTarget()), oldEdge.getType()); } }
private static boolean hasSingleEdgeEnteringBlock(final ControlFlowNode node) { int count = 0; for (final ControlFlowEdge edge : node.getIncoming()) { if (!node.dominates(edge.getSource())) { if (++count > 1) { return false; } } } return count == 1; }
@Override public boolean test(final HandlerInfo o) { return o.handlerNode.getEndFinallyNode() == edge.getSource(); } }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == handler; } }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == other; } }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == handler; } }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == other; } }
@Override public boolean test(final ControlFlowNode node) { return node.getExceptionHandler() == handler; } }