41 initialize(VM.getVM().getTypeDataBase()); 42 } 43 }); 44 } 45 46 private static synchronized void initialize(TypeDataBase db) { 47 Type type = db.lookupType("CollectedHeap"); 48 49 reservedFieldOffset = type.getField("_reserved").getOffset(); 50 } 51 52 public CollectedHeap(Address addr) { 53 super(addr); 54 } 55 56 /** Returns the lowest address of the heap. */ 57 public Address start() { 58 return reservedRegion().start(); 59 } 60 61 public long capacity() { return 0; } 62 public long used() { return 0; } 63 64 public MemRegion reservedRegion() { 65 return new MemRegion(addr.addOffsetTo(reservedFieldOffset)); 66 } 67 68 public boolean isIn(Address a) { 69 return isInReserved(a); 70 } 71 72 public boolean isInReserved(Address a) { 73 return reservedRegion().contains(a); 74 } 75 76 public abstract CollectedHeapName kind(); 77 78 public String oopAddressDescription(OopHandle handle) { 79 return handle.toString(); 80 } 81 82 public OopHandle oop_load_at(OopHandle handle, long offset) { | 41 initialize(VM.getVM().getTypeDataBase()); 42 } 43 }); 44 } 45 46 private static synchronized void initialize(TypeDataBase db) { 47 Type type = db.lookupType("CollectedHeap"); 48 49 reservedFieldOffset = type.getField("_reserved").getOffset(); 50 } 51 52 public CollectedHeap(Address addr) { 53 super(addr); 54 } 55 56 /** Returns the lowest address of the heap. */ 57 public Address start() { 58 return reservedRegion().start(); 59 } 60 61 public abstract long capacity(); 62 public abstract long used(); 63 64 public MemRegion reservedRegion() { 65 return new MemRegion(addr.addOffsetTo(reservedFieldOffset)); 66 } 67 68 public boolean isIn(Address a) { 69 return isInReserved(a); 70 } 71 72 public boolean isInReserved(Address a) { 73 return reservedRegion().contains(a); 74 } 75 76 public abstract CollectedHeapName kind(); 77 78 public String oopAddressDescription(OopHandle handle) { 79 return handle.toString(); 80 } 81 82 public OopHandle oop_load_at(OopHandle handle, long offset) { |