< prev index next >

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

Print this page

        

@@ -22,10 +22,12 @@
  *
  */
 
 package sun.jvm.hotspot.gc.z;
 
+import java.util.function.Consumer;
+
 import sun.jvm.hotspot.debugger.Address;
 import sun.jvm.hotspot.runtime.VM;
 import sun.jvm.hotspot.runtime.VMObject;
 import sun.jvm.hotspot.runtime.VMObjectFactory;
 import sun.jvm.hotspot.types.Type;

@@ -54,13 +56,31 @@
 
     private ZPageTableEntry getEntry(Address o) {
         return new ZPageTableEntry(map().get(o));
     }
 
+    private ZPageTableEntry getEntry(long index) {
+        return new ZPageTableEntry(map().get(index));
+    }
+
     ZPage get(Address o) {
         return getEntry(o).page();
     }
 
     boolean is_relocating(Address o) {
         return getEntry(o).relocating();
     }
+
+    public void pageTableIterate(Consumer<ZPage> consumer) {
+        ZPage prev = null;
+        for (long index = 0L; index < map().size(); index++) {
+            var pageEntry = getEntry(index);
+            if (pageEntry.entry != null) {
+                var page = pageEntry.page();
+                if (!page.equals(prev)) {
+                    consumer.accept(page);
+                    prev = page;
+                }
+            }
+        }
+    }
 }
< prev index next >