< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/z/ZOop.java

Print this page
rev 48259 : SA for GC - patch 2

@@ -23,26 +23,20 @@
  */
 
 package sun.jvm.hotspot.gc.z;
 
 import sun.jvm.hotspot.debugger.Address;
-import sun.jvm.hotspot.debugger.OopHandle;
 import sun.jvm.hotspot.runtime.VM;
 
 class ZOop {
-    private static final long MSB = ~0L ^ (~0L >>> 1);
+    private static final long REMOVE_MSB_MASK = Long.MAX_VALUE;
     
-    private static Address msbAddress() {
-        return VM.getVM().getUniverse().heap().start().orWithMask(MSB).andWithMask(MSB);
-    }
-        
-    static Address to_address(long value) {
+    static Address to_address(Address oop) {
         // If the value of an Address becomes 0, null is returned instead of an Address.
         // Start with a one-bit address and as a last step, remove that bit.
-        Address oneAddress = msbAddress();
-        return oneAddress.orWithMask(value).xorWithMask(ZAddress.as_long(oneAddress));
+        if ((oop == null) || (oop.asLongValue() == 0L)) {
+            return null;
+        } else {
+            return oop.andWithMask(REMOVE_MSB_MASK);
     }
-
-    static Address to_address(OopHandle oop) {
-        return to_address(ZAddress.as_long(oop));
     }
 }
< prev index next >