src/share/vm/gc_implementation/g1/heapRegion.cpp

Print this page
rev 6872 : imported patch nm-hashtable

*** 556,585 **** return NULL; } // Code roots support void HeapRegion::add_strong_code_root(nmethod* nm) { HeapRegionRemSet* hrrs = rem_set(); hrrs->add_strong_code_root(nm); } void HeapRegion::remove_strong_code_root(nmethod* nm) { HeapRegionRemSet* hrrs = rem_set(); hrrs->remove_strong_code_root(nm); } - void HeapRegion::migrate_strong_code_roots() { - assert(in_collection_set(), "only collection set regions"); - assert(!isHumongous(), - err_msg("humongous region "HR_FORMAT" should not have been added to collection set", - HR_FORMAT_PARAMS(this))); - - HeapRegionRemSet* hrrs = rem_set(); - hrrs->migrate_strong_code_roots(); - } - void HeapRegion::strong_code_roots_do(CodeBlobClosure* blk) const { HeapRegionRemSet* hrrs = rem_set(); hrrs->strong_code_roots_do(blk); } --- 556,581 ---- return NULL; } // Code roots support + void HeapRegion::lock_add_strong_code_root(nmethod* nm) { + HeapRegionRemSet* hrrs = rem_set(); + hrrs->lock_add_strong_code_root(nm); + } + void HeapRegion::add_strong_code_root(nmethod* nm) { + assert_locked_or_safepoint(CodeCache_lock); HeapRegionRemSet* hrrs = rem_set(); hrrs->add_strong_code_root(nm); } void HeapRegion::remove_strong_code_root(nmethod* nm) { HeapRegionRemSet* hrrs = rem_set(); hrrs->remove_strong_code_root(nm); } void HeapRegion::strong_code_roots_do(CodeBlobClosure* blk) const { HeapRegionRemSet* hrrs = rem_set(); hrrs->strong_code_roots_do(blk); }