[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