Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 22895:f2e3f0e1f97d
8064473: Improved handling of age during object copy in G1
Reviewed-by: brutisso, tschatzl
author | sfriberg |
---|---|
date | Fri, 14 Nov 2014 15:03:39 +0100 |
parents | 2af69bed8db6 |
children | 80ac3ee51955 |
comparison
equal
deleted
inserted
replaced
22894:2af69bed8db6 | 22895:f2e3f0e1f97d |
---|---|
4477 | 4477 |
4478 G1CollectedHeap::in_cset_state_t state = _g1->in_cset_state(obj); | 4478 G1CollectedHeap::in_cset_state_t state = _g1->in_cset_state(obj); |
4479 | 4479 |
4480 if (state == G1CollectedHeap::InCSet) { | 4480 if (state == G1CollectedHeap::InCSet) { |
4481 oop forwardee; | 4481 oop forwardee; |
4482 if (obj->is_forwarded()) { | 4482 markOop m = obj->mark(); |
4483 forwardee = obj->forwardee(); | 4483 if (m->is_marked()) { |
4484 forwardee = (oop) m->decode_pointer(); | |
4484 } else { | 4485 } else { |
4485 forwardee = _par_scan_state->copy_to_survivor_space(obj); | 4486 forwardee = _par_scan_state->copy_to_survivor_space(obj, m); |
4486 } | 4487 } |
4487 assert(forwardee != NULL, "forwardee should not be NULL"); | 4488 assert(forwardee != NULL, "forwardee should not be NULL"); |
4488 oopDesc::encode_store_heap_oop(p, forwardee); | 4489 oopDesc::encode_store_heap_oop(p, forwardee); |
4489 if (do_mark_object != G1MarkNone && forwardee != obj) { | 4490 if (do_mark_object != G1MarkNone && forwardee != obj) { |
4490 // If the object is self-forwarded we don't need to explicitly | 4491 // If the object is self-forwarded we don't need to explicitly |