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

Print this page

        

*** 39,52 **** // than one thread might claim the same card. So the same card may be // processed multiple times. So redo this check. G1CollectedHeap::in_cset_state_t in_cset_state = _g1h->in_cset_state(obj); if (in_cset_state == G1CollectedHeap::InCSet) { oop forwardee; ! if (obj->is_forwarded()) { ! forwardee = obj->forwardee(); } else { ! forwardee = copy_to_survivor_space(obj); } oopDesc::encode_store_heap_oop(p, forwardee); } else if (in_cset_state == G1CollectedHeap::IsHumongous) { _g1h->set_humongous_is_live(obj); } else { --- 39,53 ---- // than one thread might claim the same card. So the same card may be // processed multiple times. So redo this check. G1CollectedHeap::in_cset_state_t in_cset_state = _g1h->in_cset_state(obj); if (in_cset_state == G1CollectedHeap::InCSet) { oop forwardee; ! markOop m = obj->mark(); ! if (m->is_marked()) { ! forwardee = (oop) m->decode_pointer(); } else { ! forwardee = copy_to_survivor_space(obj, m); } oopDesc::encode_store_heap_oop(p, forwardee); } else if (in_cset_state == G1CollectedHeap::IsHumongous) { _g1h->set_humongous_is_live(obj); } else {