mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-22 03:54:33 +02:00
8064473: Improved handling of age during object copy in G1
Reviewed-by: brutisso, tschatzl
This commit is contained in:
parent
4feb7b4dab
commit
04bdb774e1
5 changed files with 28 additions and 31 deletions
|
@ -4270,10 +4270,11 @@ void G1ParCopyClosure<barrier, do_mark_object>::do_oop_work(T* p) {
|
|||
|
||||
if (state == G1CollectedHeap::InCSet) {
|
||||
oop forwardee;
|
||||
if (obj->is_forwarded()) {
|
||||
forwardee = obj->forwardee();
|
||||
markOop m = obj->mark();
|
||||
if (m->is_marked()) {
|
||||
forwardee = (oop) m->decode_pointer();
|
||||
} else {
|
||||
forwardee = _par_scan_state->copy_to_survivor_space(obj);
|
||||
forwardee = _par_scan_state->copy_to_survivor_space(obj, m);
|
||||
}
|
||||
assert(forwardee != NULL, "forwardee should not be NULL");
|
||||
oopDesc::encode_store_heap_oop(p, forwardee);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue