# HG changeset patch # User Peter Hofer # Date 1307548995 -7200 # Node ID aff4a6f17c26a0639f5cf01f06736611dbcc248d # Parent 0017f484608ce1f5518fa0e20aa7d02d45ecd608 IdealGraphVisualizer: use blocks from the input graphs in the difference graph diff -r 0017f484608c -r aff4a6f17c26 src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java --- a/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java Wed Jun 08 17:42:07 2011 +0200 +++ b/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java Wed Jun 08 18:03:15 2011 +0200 @@ -25,6 +25,7 @@ package com.sun.hotspot.igv.difference; import com.sun.hotspot.igv.data.Group; +import com.sun.hotspot.igv.data.InputBlock; import com.sun.hotspot.igv.data.InputEdge; import com.sun.hotspot.igv.data.InputGraph; import com.sun.hotspot.igv.data.InputNode; @@ -90,6 +91,16 @@ g.getProperties().setProperty("name", "Difference"); InputGraph graph = g.addGraph(a.getName() + ", " + b.getName(), new Pair(a, b)); + Map blocksMap = new HashMap(); + for (InputBlock blk : a.getBlocks()) { + InputBlock diffblk = graph.addBlock(blk.getName()); + blocksMap.put(blk, diffblk); + } + for (InputBlock blk : b.getBlocks()) { + InputBlock diffblk = graph.addBlock(blk.getName()); + blocksMap.put(blk, diffblk); + } + Set nodesA = new HashSet(a.getNodes()); Set nodesB = new HashSet(b.getNodes()); @@ -106,12 +117,14 @@ inputNodeMap.put(n, n2); inputNodeMap.put(nB, n2); graph.addNode(n2); + graph.setBlock(n2, blocksMap.get(a.getBlock(n))); markAsChanged(n2, n, nB); } for (InputNode n : nodesA) { InputNode n2 = new InputNode(n); graph.addNode(n2); + graph.setBlock(n2, blocksMap.get(a.getBlock(n))); markAsDeleted(n2); inputNodeMap.put(n, n2); } @@ -127,6 +140,7 @@ n2.setId(curIndex); graph.addNode(n2); + graph.setBlock(n2, blocksMap.get(b.getBlock(n))); markAsNew(n2); inputNodeMap.put(n, n2); }