private static String nodeName(final ControlFlowNode node) { String name = "node" + node.getBlockIndex(); if (node.getNodeType() == ControlFlowNodeType.EndFinally) { name += "_ef"; } return name; }
private static String nodeName(final ControlFlowNode node) { String name = "node" + node.getBlockIndex(); if (node.getNodeType() == ControlFlowNodeType.EndFinally) { name += "_ef"; } return name; }
private static String nodeName(final ControlFlowNode node) { String name = "node" + node.getBlockIndex(); if (node.getNodeType() == ControlFlowNodeType.EndFinally) { name += "_ef"; } return name; }
public ControlFlowGraph(final ControlFlowNode... nodes) { _nodes = ArrayUtilities.asUnmodifiableList(VerifyArgument.noNullElements(nodes, "nodes")); assert nodes.length >= 3; assert getEntryPoint().getNodeType() == ControlFlowNodeType.EntryPoint; assert getRegularExit().getNodeType() == ControlFlowNodeType.RegularExit; assert getExceptionalExit().getNodeType() == ControlFlowNodeType.ExceptionalExit; }
public ControlFlowGraph(final ControlFlowNode... nodes) { _nodes = ArrayUtilities.asUnmodifiableList(VerifyArgument.noNullElements(nodes, "nodes")); assert nodes.length >= 3; assert getEntryPoint().getNodeType() == ControlFlowNodeType.EntryPoint; assert getRegularExit().getNodeType() == ControlFlowNodeType.RegularExit; assert getExceptionalExit().getNodeType() == ControlFlowNodeType.ExceptionalExit; }
public ControlFlowGraph(final ControlFlowNode... nodes) { _nodes = ArrayUtilities.asUnmodifiableList(VerifyArgument.noNullElements(nodes, "nodes")); assert nodes.length >= 3; assert getEntryPoint().getNodeType() == ControlFlowNodeType.EntryPoint; assert getRegularExit().getNodeType() == ControlFlowNodeType.RegularExit; assert getExceptionalExit().getNodeType() == ControlFlowNodeType.ExceptionalExit; }
private static Map<Instruction, ControlFlowNode> createNodeMap(final ControlFlowGraph cfg) { final Map<Instruction, ControlFlowNode> nodeMap = new IdentityHashMap<>(); for (final ControlFlowNode node : cfg.getNodes()) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } for (Instruction p = node.getStart(); p != null && p.getOffset() < node.getEnd().getEndOffset(); p = p.getNext()) { nodeMap.put(p, node); } } return nodeMap; }
private static Map<Instruction, ControlFlowNode> createNodeMap(final ControlFlowGraph cfg) { final Map<Instruction, ControlFlowNode> nodeMap = new IdentityHashMap<>(); for (final ControlFlowNode node : cfg.getNodes()) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } for (Instruction p = node.getStart(); p != null && p.getOffset() < node.getEnd().getEndOffset(); p = p.getNext()) { nodeMap.put(p, node); } } return nodeMap; }
public SubroutineInfo(final ControlFlowNode entryNode, final List<ControlFlowNode> contents, final ControlFlowGraph cfg) { this.start = entryNode.getStart(); this.end = last(contents).getEnd(); this.entryNode = entryNode; this.contents = contents; this.cfg = cfg; for (final ControlFlowNode node : contents) { if (node.getNodeType() == ControlFlowNodeType.Normal && node.getEnd().getOpCode().isReturnFromSubroutine()) { this.exitNodes.add(node); } } } }
public SubroutineInfo(final ControlFlowNode entryNode, final List<ControlFlowNode> contents, final ControlFlowGraph cfg) { this.start = entryNode.getStart(); this.end = last(contents).getEnd(); this.entryNode = entryNode; this.contents = contents; this.cfg = cfg; for (final ControlFlowNode node : contents) { if (node.getNodeType() == ControlFlowNodeType.Normal && node.getEnd().getOpCode().isReturnFromSubroutine()) { this.exitNodes.add(node); } } } }
public SubroutineInfo(final ControlFlowNode entryNode, final List<ControlFlowNode> contents, final ControlFlowGraph cfg) { this.start = entryNode.getStart(); this.end = last(contents).getEnd(); this.entryNode = entryNode; this.contents = contents; this.cfg = cfg; for (final ControlFlowNode node : contents) { if (node.getNodeType() == ControlFlowNodeType.Normal && node.getEnd().getOpCode().isReturnFromSubroutine()) { this.exitNodes.add(node); } } } }
private ControlFlowNode findNode(final Instruction instruction) { final int offset = instruction.getOffset(); for (final ControlFlowNode node : _nodes) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } if (offset >= node.getStart().getOffset() && offset < node.getEnd().getEndOffset()) { return node; } } return null; }
private ControlFlowNode findNode(final Instruction instruction) { final int offset = instruction.getOffset(); for (final ControlFlowNode node : _nodes) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } if (offset >= node.getStart().getOffset() && offset < node.getEnd().getEndOffset()) { return node; } } return null; }
private ControlFlowNode findNode(final Instruction instruction) { final int offset = instruction.getOffset(); for (final ControlFlowNode node : _nodes) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } if (offset >= node.getStart().getOffset() && offset < node.getEnd().getEndOffset()) { return node; } } return null; }
@Override public boolean test(final ControlFlowNode node) { return node.getNodeType() == ControlFlowNodeType.Normal && instruction.getOffset() >= node.getStart().getOffset() && instruction.getOffset() < node.getEnd().getEndOffset(); } }
@Override public boolean test(final ControlFlowNode node) { return node.getNodeType() == ControlFlowNodeType.Normal && instruction.getOffset() >= node.getStart().getOffset() && instruction.getOffset() < node.getEnd().getEndOffset(); } }
@Override public boolean test(final ControlFlowNode node) { return node.getNodeType() == ControlFlowNodeType.Normal && instruction.getOffset() >= node.getStart().getOffset() && instruction.getOffset() < node.getEnd().getEndOffset(); } }
private static ControlFlowNode findNode(final ControlFlowGraph cfg, final Instruction instruction) { final int offset = instruction.getOffset(); for (final ControlFlowNode node : cfg.getNodes()) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } if (offset >= node.getStart().getOffset() && offset < node.getEnd().getEndOffset()) { return node; } } return null; }
private static ControlFlowNode findNode(final ControlFlowGraph cfg, final Instruction instruction) { final int offset = instruction.getOffset(); for (final ControlFlowNode node : cfg.getNodes()) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } if (offset >= node.getStart().getOffset() && offset < node.getEnd().getEndOffset()) { return node; } } return null; }
private static ControlFlowNode findNode(final ControlFlowGraph cfg, final Instruction instruction) { final int offset = instruction.getOffset(); for (final ControlFlowNode node : cfg.getNodes()) { if (node.getNodeType() != ControlFlowNodeType.Normal) { continue; } if (offset >= node.getStart().getOffset() && offset < node.getEnd().getEndOffset()) { return node; } } return null; }