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

Print this page
rev 6670 : fast reclaim main patch

*** 50,69 **** // Although we never intentionally push references outside of the collection // set, due to (benign) races in the claim mechanism during RSet scanning more // than one thread might claim the same card. So the same card may be // processed multiple times. So redo this check. ! if (_g1h->in_cset_fast_test(obj)) { oop forwardee; if (obj->is_forwarded()) { forwardee = obj->forwardee(); } else { forwardee = copy_to_survivor_space(obj); } ! assert(forwardee != NULL, "forwardee should not be NULL"); oopDesc::encode_store_heap_oop(p, forwardee); } assert(obj != NULL, "Must be"); update_rs(from, p, queue_num()); } --- 50,70 ---- // Although we never intentionally push references outside of the collection // set, due to (benign) races in the claim mechanism during RSet scanning more // than one thread might claim the same card. So the same card may be // processed multiple times. So redo this check. ! if (_g1h->is_in_cset_or_humongous(obj)) { oop forwardee; if (obj->is_forwarded()) { forwardee = obj->forwardee(); } else { forwardee = copy_to_survivor_space(obj); } ! if (forwardee != NULL) { oopDesc::encode_store_heap_oop(p, forwardee); } + } assert(obj != NULL, "Must be"); update_rs(from, p, queue_num()); }