< prev index next >
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/z/ZPage.java
Print this page
*** 33,42 ****
--- 33,44 ----
import sun.jvm.hotspot.types.TypeDataBase;
public class ZPage extends VMObject {
private static CIntegerField typeField;
private static long virtualFieldOffset;
+ private static CIntegerField topField;
+ private static CIntegerField refcountField;
private static long forwardingFieldOffset;
static {
VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase()));
}
*** 44,53 ****
--- 46,57 ----
static private synchronized void initialize(TypeDataBase db) {
Type type = db.lookupType("ZPage");
typeField = type.getCIntegerField("_type");
virtualFieldOffset = type.getField("_virtual").getOffset();
+ topField = type.getCIntegerField("_top");
+ refcountField = type.getCIntegerField("_refcount");
forwardingFieldOffset = type.getField("_forwarding").getOffset();
}
public ZPage(Address addr) {
super(addr);
*** 63,76 ****
private ZForwardingTable forwarding() {
return (ZForwardingTable)VMObjectFactory.newObject(ZForwardingTable.class, addr.addOffsetTo(forwardingFieldOffset));
}
! private long start() {
return virtual().start();
}
Address forward_object(Address from) {
// Lookup address in forwarding table
long from_offset = ZAddress.offset(from);
long from_index = (from_offset - start()) >> object_alignment_shift();
ZForwardingTableEntry entry = forwarding().find(from_index);
--- 67,88 ----
private ZForwardingTable forwarding() {
return (ZForwardingTable)VMObjectFactory.newObject(ZForwardingTable.class, addr.addOffsetTo(forwardingFieldOffset));
}
! public long start() {
return virtual().start();
}
+ public long top() {
+ return topField.getJLong(addr);
+ }
+
+ public int refcount() {
+ return topField.getJInt(addr);
+ }
+
Address forward_object(Address from) {
// Lookup address in forwarding table
long from_offset = ZAddress.offset(from);
long from_index = (from_offset - start()) >> object_alignment_shift();
ZForwardingTableEntry entry = forwarding().find(from_index);
< prev index next >