diff src/share/vm/gc_implementation/shared/mutableSpace.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents b632e80fc9dc
children db9981fd3124
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/shared/mutableSpace.cpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/src/share/vm/gc_implementation/shared/mutableSpace.cpp	Sat Sep 01 13:25:18 2012 -0400
@@ -216,7 +216,7 @@
   return (HeapWord*)Atomic::cmpxchg_ptr(obj, top_addr(), expected_top) == expected_top;
 }
 
-void MutableSpace::oop_iterate(OopClosure* cl) {
+void MutableSpace::oop_iterate(ExtendedOopClosure* cl) {
   HeapWord* obj_addr = bottom();
   HeapWord* t = top();
   // Could call objects iterate, but this is easier.
@@ -225,6 +225,15 @@
   }
 }
 
+void MutableSpace::oop_iterate_no_header(OopClosure* cl) {
+  HeapWord* obj_addr = bottom();
+  HeapWord* t = top();
+  // Could call objects iterate, but this is easier.
+  while (obj_addr < t) {
+    obj_addr += oop(obj_addr)->oop_iterate_no_header(cl);
+  }
+}
+
 void MutableSpace::object_iterate(ObjectClosure* cl) {
   HeapWord* p = bottom();
   while (p < top()) {