hotspot/src/share/vm/memory/collectorPolicy.cpp
changeset 17389 25ba661e4352
parent 17322 35c488005999
child 17392 2f967c0e4246
equal deleted inserted replaced
17356:ac6d56a603a3 17389:25ba661e4352
   239 
   239 
   240     calculated_heapsize = align_size_up(calculated_heapsize, max_alignment());
   240     calculated_heapsize = align_size_up(calculated_heapsize, max_alignment());
   241     MaxHeapSize = calculated_heapsize;
   241     MaxHeapSize = calculated_heapsize;
   242     InitialHeapSize = calculated_heapsize;
   242     InitialHeapSize = calculated_heapsize;
   243   }
   243   }
       
   244   MaxHeapSize = align_size_up(MaxHeapSize, max_alignment());
       
   245 
       
   246   // adjust max heap size if necessary
       
   247   if (NewSize + OldSize > MaxHeapSize) {
       
   248     if (FLAG_IS_CMDLINE(MaxHeapSize)) {
       
   249       // somebody set a maximum heap size with the intention that we should not
       
   250       // exceed it. Adjust New/OldSize as necessary.
       
   251       uintx calculated_size = NewSize + OldSize;
       
   252       double shrink_factor = (double) MaxHeapSize / calculated_size;
       
   253       // align
       
   254       NewSize = align_size_down((uintx) (NewSize * shrink_factor), min_alignment());
       
   255       // OldSize is already aligned because above we aligned MaxHeapSize to
       
   256       // max_alignment(), and we just made sure that NewSize is aligned to
       
   257       // min_alignment(). In initialize_flags() we verified that max_alignment()
       
   258       // is a multiple of min_alignment().
       
   259       OldSize = MaxHeapSize - NewSize;
       
   260     } else {
       
   261       MaxHeapSize = NewSize + OldSize;
       
   262     }
       
   263   }
       
   264   // need to do this again
   244   MaxHeapSize = align_size_up(MaxHeapSize, max_alignment());
   265   MaxHeapSize = align_size_up(MaxHeapSize, max_alignment());
   245 
   266 
   246   // adjust max heap size if necessary
   267   // adjust max heap size if necessary
   247   if (NewSize + OldSize > MaxHeapSize) {
   268   if (NewSize + OldSize > MaxHeapSize) {
   248     if (FLAG_IS_CMDLINE(MaxHeapSize)) {
   269     if (FLAG_IS_CMDLINE(MaxHeapSize)) {