< prev index next >

src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp

Print this page
rev 13068 : [mq]: partial.patch

@@ -210,10 +210,21 @@
     }
   }
   return NULL; // all done
 }
 
+void ShenandoahHeapRegion::oop_iterate(ExtendedOopClosure* blk) {
+  if (is_empty()) return;
+  HeapWord* obj_addr = bottom() + BrooksPointer::word_size();
+  HeapWord* t = top();
+  // Could call objects iterate, but this is easier.
+  while (obj_addr < t) {
+    oop obj = oop(obj_addr);
+    obj_addr += obj->oop_iterate_size(blk) + BrooksPointer::word_size();
+  }
+}
+
 void ShenandoahHeapRegion::fill_region() {
   ShenandoahHeap* sh = (ShenandoahHeap*) Universe::heap();
 
   if (free() > (BrooksPointer::word_size() + CollectedHeap::min_fill_size())) {
     HeapWord* filler = allocate(BrooksPointer::word_size());
< prev index next >