src/share/vm/gc_implementation/g1/g1ParScanThreadState.inline.hpp

changeset 7645
f2e3f0e1f97d
parent 7218
6948da6d7c13
child 7651
c132be0fb74d
equal deleted inserted replaced
7644:2af69bed8db6 7645:f2e3f0e1f97d
39 // than one thread might claim the same card. So the same card may be 39 // than one thread might claim the same card. So the same card may be
40 // processed multiple times. So redo this check. 40 // processed multiple times. So redo this check.
41 G1CollectedHeap::in_cset_state_t in_cset_state = _g1h->in_cset_state(obj); 41 G1CollectedHeap::in_cset_state_t in_cset_state = _g1h->in_cset_state(obj);
42 if (in_cset_state == G1CollectedHeap::InCSet) { 42 if (in_cset_state == G1CollectedHeap::InCSet) {
43 oop forwardee; 43 oop forwardee;
44 if (obj->is_forwarded()) { 44 markOop m = obj->mark();
45 forwardee = obj->forwardee(); 45 if (m->is_marked()) {
46 forwardee = (oop) m->decode_pointer();
46 } else { 47 } else {
47 forwardee = copy_to_survivor_space(obj); 48 forwardee = copy_to_survivor_space(obj, m);
48 } 49 }
49 oopDesc::encode_store_heap_oop(p, forwardee); 50 oopDesc::encode_store_heap_oop(p, forwardee);
50 } else if (in_cset_state == G1CollectedHeap::IsHumongous) { 51 } else if (in_cset_state == G1CollectedHeap::IsHumongous) {
51 _g1h->set_humongous_is_live(obj); 52 _g1h->set_humongous_is_live(obj);
52 } else { 53 } else {

mercurial