diff src/share/vm/memory/collectorPolicy.cpp @ 10239:f14063dcd52a

8013791: G1: G1CollectorPolicy::initialize_flags() may set min_alignment > max_alignment Summary: Make sure max alignemnt is at least as large as min alignment Reviewed-by: johnc, jmasa, tschatzl
author brutisso
date Mon, 06 May 2013 09:16:14 +0200
parents 5a9fa2ba85f0
children d17700c82d7d
line wrap: on
line diff
--- a/src/share/vm/memory/collectorPolicy.cpp	Thu May 02 22:35:15 2013 +0200
+++ b/src/share/vm/memory/collectorPolicy.cpp	Mon May 06 09:16:14 2013 +0200
@@ -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 @@
   // 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();