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;