src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/epsilon/EpsilonHeap.java
branchepsilon-gc-branch
changeset 56667 d999bdb8173c
parent 56576 92316ff16d5c
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/epsilon/EpsilonHeap.java	Thu May 31 16:09:17 2018 +0200
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/epsilon/EpsilonHeap.java	Tue Jun 05 17:17:19 2018 +0200
@@ -27,8 +27,7 @@
 import java.io.*;
 import java.util.*;
 
-import sun.jvm.hotspot.gc.shared.CollectedHeap;
-import sun.jvm.hotspot.gc.shared.CollectedHeapName;
+import sun.jvm.hotspot.gc.shared.*;
 import sun.jvm.hotspot.code.*;
 import sun.jvm.hotspot.debugger.*;
 import sun.jvm.hotspot.runtime.*;
@@ -37,8 +36,10 @@
 
 public class EpsilonHeap extends CollectedHeap {
 
-  private static Field spaceField;
-  private VirtualSpace space;
+  private static AddressField spaceField;
+  private static Field virtualSpaceField;
+  private ContiguousSpace space;
+  private VirtualSpace virtualSpace;
 
   static {
     VM.registerVMInitializedObserver(new Observer() {
@@ -50,12 +51,14 @@
 
   private static void initialize(TypeDataBase db) {
     Type type = db.lookupType("EpsilonHeap");
-    spaceField = type.getField("_virtual_space");
+    spaceField = type.getAddressField("_space");
+    virtualSpaceField = type.getField("_virtual_space");
   }
 
   public EpsilonHeap(Address addr) {
     super(addr);
-    space = new VirtualSpace(addr.addOffsetTo(spaceField.getOffset()));
+    space = new ContiguousSpace(spaceField.getValue(addr));
+    virtualSpace = new VirtualSpace(addr.addOffsetTo(virtualSpaceField.getOffset()));
   }
 
   @Override
@@ -63,7 +66,7 @@
     return CollectedHeapName.EPSILON;
   }
 
-  public VirtualSpace space() {
+  public ContiguousSpace space() {
     return space;
   }
 
@@ -71,8 +74,9 @@
   public void printOn(PrintStream tty) {
      MemRegion mr = reservedRegion();
      tty.println("Epsilon heap");
-     tty.println(" reserved: [" + mr.start() + ", " + mr.end() + "]");
-     tty.println(" committed: [" + space.low() + ", " + space.high() + "]");
+     tty.println(" reserved:  [" + mr.start() + ", " + mr.end() + "]");
+     tty.println(" committed: [" + virtualSpace.low() + ", " + virtualSpace.high() + "]");
+     tty.println(" used:      [" + space.bottom() + ", " + space.top() + "]");
   }
 
 }