Mercurial > hg > truffle
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(); |