equal
deleted
inserted
replaced
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; |