< 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 >