547 void HeapRegion::add_strong_code_root(nmethod* nm) { |
547 void HeapRegion::add_strong_code_root(nmethod* nm) { |
548 HeapRegionRemSet* hrrs = rem_set(); |
548 HeapRegionRemSet* hrrs = rem_set(); |
549 hrrs->add_strong_code_root(nm); |
549 hrrs->add_strong_code_root(nm); |
550 } |
550 } |
551 |
551 |
|
552 void HeapRegion::add_strong_code_root_locked(nmethod* nm) { |
|
553 assert_locked_or_safepoint(CodeCache_lock); |
|
554 HeapRegionRemSet* hrrs = rem_set(); |
|
555 hrrs->add_strong_code_root_locked(nm); |
|
556 } |
|
557 |
552 void HeapRegion::remove_strong_code_root(nmethod* nm) { |
558 void HeapRegion::remove_strong_code_root(nmethod* nm) { |
553 HeapRegionRemSet* hrrs = rem_set(); |
559 HeapRegionRemSet* hrrs = rem_set(); |
554 hrrs->remove_strong_code_root(nm); |
560 hrrs->remove_strong_code_root(nm); |
555 } |
|
556 |
|
557 void HeapRegion::migrate_strong_code_roots() { |
|
558 assert(in_collection_set(), "only collection set regions"); |
|
559 assert(!isHumongous(), |
|
560 err_msg("humongous region "HR_FORMAT" should not have been added to collection set", |
|
561 HR_FORMAT_PARAMS(this))); |
|
562 |
|
563 HeapRegionRemSet* hrrs = rem_set(); |
|
564 hrrs->migrate_strong_code_roots(); |
|
565 } |
561 } |
566 |
562 |
567 void HeapRegion::strong_code_roots_do(CodeBlobClosure* blk) const { |
563 void HeapRegion::strong_code_roots_do(CodeBlobClosure* blk) const { |
568 HeapRegionRemSet* hrrs = rem_set(); |
564 HeapRegionRemSet* hrrs = rem_set(); |
569 hrrs->strong_code_roots_do(blk); |
565 hrrs->strong_code_roots_do(blk); |