hotspot/src/share/vm/gc/shared/collectedHeap.inline.hpp
changeset 33105 294e48b4f704
parent 30764 fec48bf5a827
child 35862 411842d0c882
equal deleted inserted replaced
33104:a7c0f60a1294 33105:294e48b4f704
   242   if (alignment_in_bytes <= ObjectAlignmentInBytes) {
   242   if (alignment_in_bytes <= ObjectAlignmentInBytes) {
   243     return addr;
   243     return addr;
   244   }
   244   }
   245 
   245 
   246   assert(is_ptr_aligned(addr, HeapWordSize),
   246   assert(is_ptr_aligned(addr, HeapWordSize),
   247     err_msg("Address " PTR_FORMAT " is not properly aligned.", p2i(addr)));
   247          "Address " PTR_FORMAT " is not properly aligned.", p2i(addr));
   248   assert(is_size_aligned(alignment_in_bytes, HeapWordSize),
   248   assert(is_size_aligned(alignment_in_bytes, HeapWordSize),
   249     err_msg("Alignment size %u is incorrect.", alignment_in_bytes));
   249          "Alignment size %u is incorrect.", alignment_in_bytes);
   250 
   250 
   251   HeapWord* new_addr = (HeapWord*) align_pointer_up(addr, alignment_in_bytes);
   251   HeapWord* new_addr = (HeapWord*) align_pointer_up(addr, alignment_in_bytes);
   252   size_t padding = pointer_delta(new_addr, addr);
   252   size_t padding = pointer_delta(new_addr, addr);
   253 
   253 
   254   if (padding == 0) {
   254   if (padding == 0) {
   256   }
   256   }
   257 
   257 
   258   if (padding < CollectedHeap::min_fill_size()) {
   258   if (padding < CollectedHeap::min_fill_size()) {
   259     padding += alignment_in_bytes / HeapWordSize;
   259     padding += alignment_in_bytes / HeapWordSize;
   260     assert(padding >= CollectedHeap::min_fill_size(),
   260     assert(padding >= CollectedHeap::min_fill_size(),
   261       err_msg("alignment_in_bytes %u is expect to be larger "
   261            "alignment_in_bytes %u is expect to be larger "
   262       "than the minimum object size", alignment_in_bytes));
   262            "than the minimum object size", alignment_in_bytes);
   263     new_addr = addr + padding;
   263     new_addr = addr + padding;
   264   }
   264   }
   265 
   265 
   266   assert(new_addr > addr, err_msg("Unexpected arithmetic overflow "
   266   assert(new_addr > addr, "Unexpected arithmetic overflow "
   267     PTR_FORMAT " not greater than " PTR_FORMAT, p2i(new_addr), p2i(addr)));
   267          PTR_FORMAT " not greater than " PTR_FORMAT, p2i(new_addr), p2i(addr));
   268   if(new_addr < end) {
   268   if(new_addr < end) {
   269     CollectedHeap::fill_with_object(addr, padding);
   269     CollectedHeap::fill_with_object(addr, padding);
   270     return new_addr;
   270     return new_addr;
   271   } else {
   271   } else {
   272     return NULL;
   272     return NULL;