changeset 20052:d22307a9a025

Small fixes to IGV layout.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 27 Mar 2015 15:43:31 +0100
parents 7072d9d4aa13
children eea134855f85
files src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java
diffstat 1 files changed, 7 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java	Mon Mar 23 00:26:47 2015 +0100
+++ b/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java	Fri Mar 27 15:43:31 2015 +0100
@@ -538,15 +538,9 @@
                 if (n2.vertex == null) {
                     return 0;
                 }
-                if (n1.preds.size() == 1 && n1.preds.get(0).from.vertex != null) {
-                    return 1;
-                }
                 return -1;
             }
             if (n2.vertex == null) {
-                if (n2.preds.size() == 1 && n2.preds.get(0).from.vertex != null) {
-                    return -1;
-                }
                 return 1;
             }
             return n1.preds.size() - n2.preds.size();
@@ -568,24 +562,18 @@
                     n2VIP++;
                 }
             }
+            if (n1VIP != n2VIP) {
+                return n2VIP - n1VIP;
+            }
             if (n1.vertex == null) {
                 if (n2.vertex == null) {
                     return 0;
                 }
-                if (n1.succs.size() == 1 && n1.succs.get(0).to.vertex != null) {
-                    return 1;
-                }
                 return -1;
             }
             if (n2.vertex == null) {
-                if (n2.succs.size() == 1 && n2.succs.get(0).to.vertex != null) {
-                    return -1;
-                }
                 return 1;
             }
-            if (n1VIP != n2VIP) {
-                return n2VIP - n1VIP;
-            }
             return n1.succs.size() - n2.succs.size();
         }
     };
@@ -634,11 +622,13 @@
             for (int i = 0; i < SWEEP_ITERATIONS; i++) {
                 sweepDown();
                 adjustSpace();
-                sweepUp();
+                sweepUp(false);
                 adjustSpace();
             }
 
             sweepDown();
+            adjustSpace();
+            sweepUp(true);
         }
 
         private void adjustSpace() {
@@ -730,7 +720,7 @@
             }
         }
 
-        private void sweepUp() {
+        private void sweepUp(boolean onlyDummies) {
             for (int i = layers.length - 1; i >= 0; i--) {
                 NodeRow r = new NodeRow(space[i]);
                 for (LayoutNode n : upProcessingOrder[i]) {