comparison src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp @ 3985:c63b928b212b

7021322: assert(object_end <= top()) failed: Object crosses promotion LAB boundary Summary: Pass the same object size value to both allocate and unallocate_object Reviewed-by: ysr, brutisso
author stefank
date Mon, 12 Sep 2011 16:09:50 +0200
parents 1d1603768966
children 95f6641e38e0
comparison
equal deleted inserted replaced
3984:81aa07130d30 3985:c63b928b212b
378 378
379 // Try to deallocate the space. If it was directly allocated we cannot 379 // Try to deallocate the space. If it was directly allocated we cannot
380 // deallocate it, so we have to test. If the deallocation fails, 380 // deallocate it, so we have to test. If the deallocation fails,
381 // overwrite with a filler object. 381 // overwrite with a filler object.
382 if (new_obj_is_tenured) { 382 if (new_obj_is_tenured) {
383 if (!_old_lab.unallocate_object(new_obj)) { 383 if (!_old_lab.unallocate_object((HeapWord*) new_obj, new_obj_size)) {
384 CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size); 384 CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size);
385 } 385 }
386 } else if (!_young_lab.unallocate_object(new_obj)) { 386 } else if (!_young_lab.unallocate_object((HeapWord*) new_obj, new_obj_size)) {
387 CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size); 387 CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size);
388 } 388 }
389 389
390 // don't update this before the unallocation! 390 // don't update this before the unallocation!
391 new_obj = o->forwardee(); 391 new_obj = o->forwardee();