comparison src/share/vm/gc_implementation/g1/heapRegion.cpp @ 13062:28674af341ac

8027756: assert(!hr->isHumongous()) failed: code root in humongous region? Summary: Change checks for isHumongous() to continuesHumongous() as installing a code root for a humongous object is valid, but not for continuations of humongous objects. Cleaned up asserts. Reviewed-by: jmasa, tamao
author tschatzl
date Thu, 07 Nov 2013 15:17:10 +0100
parents 8f07aa079343
children 096c224171c4 63a4eb8bcd23 191174b49bec
comparison
equal deleted inserted replaced
13061:610be0309a79 13062:28674af341ac
599 hrrs->remove_strong_code_root(nm); 599 hrrs->remove_strong_code_root(nm);
600 } 600 }
601 601
602 void HeapRegion::migrate_strong_code_roots() { 602 void HeapRegion::migrate_strong_code_roots() {
603 assert(in_collection_set(), "only collection set regions"); 603 assert(in_collection_set(), "only collection set regions");
604 assert(!isHumongous(), "not humongous regions"); 604 assert(!isHumongous(),
605 err_msg("humongous region "HR_FORMAT" should not have been added to collection set",
606 HR_FORMAT_PARAMS(this)));
605 607
606 HeapRegionRemSet* hrrs = rem_set(); 608 HeapRegionRemSet* hrrs = rem_set();
607 hrrs->migrate_strong_code_roots(); 609 hrrs->migrate_strong_code_roots();
608 } 610 }
609 611
720 *failures = true; 722 *failures = true;
721 } 723 }
722 return; 724 return;
723 } 725 }
724 726
725 // An H-region should have an empty strong code root list 727 if (continuesHumongous()) {
726 if (isHumongous()) {
727 if (strong_code_roots_length > 0) { 728 if (strong_code_roots_length > 0) {
728 gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] is humongous " 729 gclog_or_tty->print_cr("region "HR_FORMAT" is a continuation of a humongous "
729 "but has "INT32_FORMAT" code root entries", 730 "region but has "INT32_FORMAT" code root entries",
730 bottom(), end(), strong_code_roots_length); 731 HR_FORMAT_PARAMS(this), strong_code_roots_length);
731 *failures = true; 732 *failures = true;
732 } 733 }
733 return; 734 return;
734 } 735 }
735 736