Mercurial > hg > graal-jvmci-8
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 |