< prev index next >

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

Print this page




  48         virtualFieldOffset = type.getField("_virtual").getOffset();
  49         forwardingFieldOffset = type.getField("_forwarding").getOffset();
  50     }
  51 
  52     public ZPage(Address addr) {
  53         super(addr);
  54     }
  55 
  56     private byte type() {
  57         return typeField.getJByte(addr);
  58     }
  59 
  60     private ZVirtualMemory virtual() {
  61         return (ZVirtualMemory)VMObjectFactory.newObject(ZVirtualMemory.class, addr.addOffsetTo(virtualFieldOffset));
  62     }
  63 
  64     private ZForwardingTable forwarding() {
  65         return (ZForwardingTable)VMObjectFactory.newObject(ZForwardingTable.class, addr.addOffsetTo(forwardingFieldOffset));
  66     }
  67 
  68     private long start() {
  69         return virtual().start();




  70     }
  71 
  72     Address forward_object(Address from) {
  73         // Lookup address in forwarding table
  74         long from_offset = ZAddress.offset(from);
  75         long from_index = (from_offset - start()) >> object_alignment_shift();
  76         ZForwardingTableEntry entry = forwarding().find(from_index);
  77         assert(!entry.is_empty());
  78         assert(entry.from_index() == from_index);
  79 
  80         return ZAddress.good(entry.to_offset());
  81     }
  82 
  83     Address relocate_object(Address from) {
  84         // Lookup address in forwarding table
  85         long from_offset = ZAddress.offset(from);
  86         long from_index = (from_offset - start()) >> object_alignment_shift();
  87         ZForwardingTableEntry entry = forwarding().find(from_index);
  88         if (!entry.is_empty() && entry.from_index() == from_index) {
  89           return ZAddress.good(entry.to_offset());


  48         virtualFieldOffset = type.getField("_virtual").getOffset();
  49         forwardingFieldOffset = type.getField("_forwarding").getOffset();
  50     }
  51 
  52     public ZPage(Address addr) {
  53         super(addr);
  54     }
  55 
  56     private byte type() {
  57         return typeField.getJByte(addr);
  58     }
  59 
  60     private ZVirtualMemory virtual() {
  61         return (ZVirtualMemory)VMObjectFactory.newObject(ZVirtualMemory.class, addr.addOffsetTo(virtualFieldOffset));
  62     }
  63 
  64     private ZForwardingTable forwarding() {
  65         return (ZForwardingTable)VMObjectFactory.newObject(ZForwardingTable.class, addr.addOffsetTo(forwardingFieldOffset));
  66     }
  67 
  68     long start() {
  69         return virtual().start();
  70     }
  71 
  72     long size() {
  73         return virtual().end() - virtual().start();
  74     }
  75 
  76     Address forward_object(Address from) {
  77         // Lookup address in forwarding table
  78         long from_offset = ZAddress.offset(from);
  79         long from_index = (from_offset - start()) >> object_alignment_shift();
  80         ZForwardingTableEntry entry = forwarding().find(from_index);
  81         assert(!entry.is_empty());
  82         assert(entry.from_index() == from_index);
  83 
  84         return ZAddress.good(entry.to_offset());
  85     }
  86 
  87     Address relocate_object(Address from) {
  88         // Lookup address in forwarding table
  89         long from_offset = ZAddress.offset(from);
  90         long from_index = (from_offset - start()) >> object_alignment_shift();
  91         ZForwardingTableEntry entry = forwarding().find(from_index);
  92         if (!entry.is_empty() && entry.from_index() == from_index) {
  93           return ZAddress.good(entry.to_offset());
< prev index next >