8013791: G1: G1CollectorPolicy::initialize_flags() may set min_alignment > max_alignment

Make sure max alignemnt is at least as large as min alignment

Reviewed-by: johnc, jmasa, tschatzl
This commit is contained in:
Bengt Rutisson 2013-05-06 09:16:14 +02:00
parent d08bf8d1be
commit 36c195270d
3 changed files with 45 additions and 4 deletions

View file

@ -48,6 +48,13 @@
// CollectorPolicy methods.
void CollectorPolicy::initialize_flags() {
assert(max_alignment() >= min_alignment(),
err_msg("max_alignment: " SIZE_FORMAT " less than min_alignment: " SIZE_FORMAT,
max_alignment(), min_alignment()));
assert(max_alignment() % min_alignment() == 0,
err_msg("max_alignment: " SIZE_FORMAT " not aligned by min_alignment: " SIZE_FORMAT,
max_alignment(), min_alignment()));
if (MetaspaceSize > MaxMetaspaceSize) {
MaxMetaspaceSize = MetaspaceSize;
}
@ -201,9 +208,6 @@ void GenCollectorPolicy::initialize_flags() {
// All sizes must be multiples of the generation granularity.
set_min_alignment((uintx) Generation::GenGrain);
set_max_alignment(compute_max_alignment());
assert(max_alignment() >= min_alignment() &&
max_alignment() % min_alignment() == 0,
"invalid alignment constraints");
CollectorPolicy::initialize_flags();