# HG changeset patch # User Roland Schatz # Date 1424256376 -3600 # Node ID eb2e1729433e081b23ee3ba810648b96665a252c # Parent 6709f80867560f87728827b24f47dd8fb08a6e7c Fix NodeUnionFind bug: Make union ignore nodes that are already in the same set. diff -r 6709f8086756 -r eb2e1729433e graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeUnionFind.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeUnionFind.java Tue Feb 17 21:44:55 2015 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeUnionFind.java Wed Feb 18 11:46:16 2015 +0100 @@ -73,12 +73,14 @@ private void union(int a, int b) { int aRoot = find(a); int bRoot = find(b); - if (rank[aRoot] < rank[bRoot]) { - parent[aRoot] = bRoot; - } else { - parent[bRoot] = aRoot; - if (rank[aRoot] == rank[bRoot]) { - rank[aRoot]++; + if (aRoot != bRoot) { + if (rank[aRoot] < rank[bRoot]) { + parent[aRoot] = bRoot; + } else { + parent[bRoot] = aRoot; + if (rank[aRoot] == rank[bRoot]) { + rank[aRoot]++; + } } } }