# HG changeset patch # User Gilles Duboscq # Date 1427461761 -3600 # Node ID 8af4e7e0ac9fcb74885f2a9b2a8c9d2ed3f7d3a8 # Parent 97dbe2c740736486b00fc038d6d813235b275b00 Make IGV more robust when parsing block information diff -r 97dbe2c74073 -r 8af4e7e0ac9f src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlock.java --- a/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlock.java Fri Mar 27 14:03:46 2015 +0100 +++ b/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlock.java Fri Mar 27 14:09:21 2015 +0100 @@ -88,12 +88,10 @@ } public void addNode(int id) { - InputNode n = graph.getNode(id); - assert n != null; - graph.setBlock(n, this); - final InputNode node = graph.getNode(id); + InputNode node = graph.getNode(id); assert node != null; assert !nodes.contains(node) : "duplicate : " + node; + graph.setBlock(node, this); nodes.add(node); } diff -r 97dbe2c74073 -r 8af4e7e0ac9f src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/BinaryParser.java --- a/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/BinaryParser.java Fri Mar 27 14:03:46 2015 +0100 +++ b/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/BinaryParser.java Fri Mar 27 14:09:21 2015 +0100 @@ -687,8 +687,17 @@ int nodeCount = readInt(); for (int j = 0; j < nodeCount; j++) { int nodeId = readInt(); - block.addNode(nodeId); - graph.getNode(nodeId).getProperties().setProperty("block", name); + if (nodeId < 0) { + continue; + } + final Properties properties = graph.getNode(nodeId).getProperties(); + final String oldBlock = properties.get("block"); + if(oldBlock != null) { + properties.setProperty("block", oldBlock + ", " + name); + } else { + block.addNode(nodeId); + properties.setProperty("block", name); + } } int edgeCount = readInt(); for (int j = 0; j < edgeCount; j++) {