< prev index next >

src/share/vm/code/codeCache.cpp

Print this page
rev 12906 : [mq]: gc_interface

@@ -666,26 +666,23 @@
   FOR_ALL_NMETHOD_HEAPS(heap) {
     FOR_ALL_BLOBS(cb, *heap) {
       if (cb->is_alive()) {
         f->do_code_blob(cb);
 #ifdef ASSERT
-        if (cb->is_nmethod())
-        ((nmethod*)cb)->verify_scavenge_root_oops();
+        if (cb->is_nmethod()) {
+          Universe::heap()->verify_nmethod_roots((nmethod*)cb);
+        }
 #endif //ASSERT
       }
     }
   }
 }
 
 // Walk the list of methods which might contain non-perm oops.
 void CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure* f) {
   assert_locked_or_safepoint(CodeCache_lock);
 
-  if (UseG1GC) {
-    return;
-  }
-
   const bool fix_relocations = f->fix_relocations();
   debug_only(mark_scavenge_root_nmethods());
 
   nmethod* prev = NULL;
   nmethod* cur = scavenge_root_nmethods();

@@ -721,14 +718,10 @@
 }
 
 void CodeCache::add_scavenge_root_nmethod(nmethod* nm) {
   assert_locked_or_safepoint(CodeCache_lock);
 
-  if (UseG1GC) {
-    return;
-  }
-
   nm->set_on_scavenge_root_list();
   nm->set_scavenge_root_link(_scavenge_root_nmethods);
   set_scavenge_root_nmethods(nm);
   print_trace("add_scavenge_root", nm);
 }

@@ -737,12 +730,10 @@
   assert_locked_or_safepoint(CodeCache_lock);
 
   assert((prev == NULL && scavenge_root_nmethods() == nm) ||
          (prev != NULL && prev->scavenge_root_link() == nm), "precondition");
 
-  assert(!UseG1GC, "G1 does not use the scavenge_root_nmethods list");
-
   print_trace("unlink_scavenge_root", nm);
   if (prev == NULL) {
     set_scavenge_root_nmethods(nm->scavenge_root_link());
   } else {
     prev->set_scavenge_root_link(nm->scavenge_root_link());

@@ -752,14 +743,10 @@
 }
 
 void CodeCache::drop_scavenge_root_nmethod(nmethod* nm) {
   assert_locked_or_safepoint(CodeCache_lock);
 
-  if (UseG1GC) {
-    return;
-  }
-
   print_trace("drop_scavenge_root", nm);
   nmethod* prev = NULL;
   for (nmethod* cur = scavenge_root_nmethods(); cur != NULL; cur = cur->scavenge_root_link()) {
     if (cur == nm) {
       unlink_scavenge_root_nmethod(cur, prev);

@@ -771,14 +758,10 @@
 }
 
 void CodeCache::prune_scavenge_root_nmethods() {
   assert_locked_or_safepoint(CodeCache_lock);
 
-  if (UseG1GC) {
-    return;
-  }
-
   debug_only(mark_scavenge_root_nmethods());
 
   nmethod* last = NULL;
   nmethod* cur = scavenge_root_nmethods();
   while (cur != NULL) {

@@ -803,14 +786,10 @@
   debug_only(verify_perm_nmethods(NULL));
 }
 
 #ifndef PRODUCT
 void CodeCache::asserted_non_scavengable_nmethods_do(CodeBlobClosure* f) {
-  if (UseG1GC) {
-    return;
-  }
-
   // While we are here, verify the integrity of the list.
   mark_scavenge_root_nmethods();
   for (nmethod* cur = scavenge_root_nmethods(); cur != NULL; cur = cur->scavenge_root_link()) {
     assert(cur->on_scavenge_root_list(), "else shouldn't be on this list");
     cur->clear_scavenge_root_marked();

@@ -837,11 +816,11 @@
     nmethod* nm = iter.method();
     bool call_f = (f_or_null != NULL);
     assert(nm->scavenge_root_not_marked(), "must be already processed");
     if (nm->on_scavenge_root_list())
       call_f = false;  // don't show this one to the client
-    nm->verify_scavenge_root_oops();
+    Universe::heap()->verify_nmethod_roots(nm);
     if (call_f)  f_or_null->do_code_blob(nm);
   }
 }
 #endif //PRODUCT
 

@@ -1622,6 +1601,5 @@
   st->print(" total_blobs='" UINT32_FORMAT "' nmethods='" UINT32_FORMAT "'"
             " adapters='" UINT32_FORMAT "' free_code_cache='" SIZE_FORMAT "'",
             blob_count(), nmethod_count(), adapter_count(),
             unallocated_capacity());
 }
-
< prev index next >