hotspot/src/share/vm/code/codeCache.cpp
changeset 8724 693c6b883b54
parent 8672 26a427ab6f32
child 8725 8c1e3dd5fe1b
equal deleted inserted replaced
8689:1d9c2c94ce9b 8724:693c6b883b54
   335     }
   335     }
   336 #endif //PRODUCT
   336 #endif //PRODUCT
   337     if (is_live) {
   337     if (is_live) {
   338       // Perform cur->oops_do(f), maybe just once per nmethod.
   338       // Perform cur->oops_do(f), maybe just once per nmethod.
   339       f->do_code_blob(cur);
   339       f->do_code_blob(cur);
   340       cur->fix_oop_relocations();
       
   341     }
   340     }
   342   }
   341   }
   343 
   342 
   344   // Check for stray marks.
   343   // Check for stray marks.
   345   debug_only(verify_perm_nmethods(NULL));
   344   debug_only(verify_perm_nmethods(NULL));
   547     }
   546     }
   548   }
   547   }
   549   set_needs_cache_clean(false);
   548   set_needs_cache_clean(false);
   550   prune_scavenge_root_nmethods();
   549   prune_scavenge_root_nmethods();
   551   assert(!nmethod::oops_do_marking_is_active(), "oops_do_marking_prologue must be called");
   550   assert(!nmethod::oops_do_marking_is_active(), "oops_do_marking_prologue must be called");
       
   551 }
       
   552 
       
   553 
       
   554 void CodeCache::verify_oops() {
       
   555   MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
       
   556   VerifyOopClosure voc;
       
   557   FOR_ALL_ALIVE_BLOBS(cb) {
       
   558     if (cb->is_nmethod()) {
       
   559       nmethod *nm = (nmethod*)cb;
       
   560       nm->oops_do(&voc);
       
   561       nm->verify_oop_relocations();
       
   562     }
       
   563   }
   552 }
   564 }
   553 
   565 
   554 
   566 
   555 address CodeCache::first_address() {
   567 address CodeCache::first_address() {
   556   assert_locked_or_safepoint(CodeCache_lock);
   568   assert_locked_or_safepoint(CodeCache_lock);