Mercurial > hg > graal-compiler
changeset 13675:a87e5c330cbd
Fix equals and hashCode in Float/IntegerStamp.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Fri, 17 Jan 2014 15:40:50 +0100 |
parents | c700811a2814 |
children | f30814642122 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java |
diffstat | 2 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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; }
--- 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;