[nicl] RFR: Override hashCode and equals for BoundedPoitner
    Henry Jen 
    henry.jen at oracle.com
       
    Thu May 24 19:50:11 UTC 2018
    
    
  
Hi,
Please review following quick patch to properly compare Pointers base on the address they pointed to.
Cheers,
Henry
 
diff -r 565c7beca6d2 src/java.base/share/classes/jdk/internal/nicl/types/BoundedPointer.java
--- a/src/java.base/share/classes/jdk/internal/nicl/types/BoundedPointer.java   Thu May 24 11:54:32 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/nicl/types/BoundedPointer.java   Thu May 24 12:47:40 2018 -0700
@@ -40,6 +40,28 @@
         return addr == 0;
     }
+    @Override
+    public int hashCode() {
+        return Long.valueOf(effectiveAddress()).hashCode();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == this) {
+            return true;
+        } else if (o instanceof BoundedPointer) {
+            return ((BoundedPointer) o).effectiveAddress() == effectiveAddress();
+        } else if (o instanceof Pointer) {
+            try {
+                return ((Pointer) o).addr() == effectiveAddress();
+            } catch (IllegalAccessException iae) {
+                throw new IllegalStateException();
+            }
+        } else {
+            return false;
+        }
+    }
+
     protected final BoundedMemoryRegion region;
     protected final long offset;
    
    
More information about the panama-dev
mailing list