# HG changeset patch # User Roland Schatz # Date 1389969650 -3600 # Node ID a87e5c330cbd892fec3279e76c5619ad2313c916 # Parent c700811a2814b67923839d3c162605b464717ae1 Fix equals and hashCode in Float/IntegerStamp. diff -r c700811a2814 -r a87e5c330cbd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java Fri Jan 17 14:07:36 2014 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java Fri Jan 17 15:40:50 2014 +0100 @@ -148,6 +148,7 @@ final int prime = 31; int result = 1; long temp; + result = prime * result + kind().hashCode(); temp = Double.doubleToLongBits(lowerBound); result = prime * result + (int) (temp ^ (temp >>> 32)); result = prime * result + (nonNaN ? 1231 : 1237); @@ -165,6 +166,9 @@ return false; } FloatStamp other = (FloatStamp) obj; + if (kind() != other.kind()) { + return false; + } if (Double.doubleToLongBits(lowerBound) != Double.doubleToLongBits(other.lowerBound)) { return false; } diff -r c700811a2814 -r a87e5c330cbd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java Fri Jan 17 14:07:36 2014 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java Fri Jan 17 15:40:50 2014 +0100 @@ -194,6 +194,7 @@ public int hashCode() { final int prime = 31; int result = 1; + result = prime * result + kind().hashCode(); result = prime * result + (int) (lowerBound ^ (lowerBound >>> 32)); result = prime * result + (int) (upperBound ^ (upperBound >>> 32)); result = prime * result + (int) (downMask ^ (downMask >>> 32)); @@ -210,7 +211,7 @@ return false; } IntegerStamp other = (IntegerStamp) obj; - if (lowerBound != other.lowerBound || upperBound != other.upperBound || downMask != other.downMask || upMask != other.upMask) { + if (lowerBound != other.lowerBound || upperBound != other.upperBound || downMask != other.downMask || upMask != other.upMask || kind() != other.kind()) { return false; } return true;