< prev index next >

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

Print this page
rev 13170 : [mq]: 8183397-consistent-closure-filtering

*** 45,63 **** obj = (oop) m->decode_pointer(); } else { obj = copy_to_survivor_space(in_cset_state, obj, m); } oopDesc::encode_store_heap_oop(p, obj); ! } else if (in_cset_state.is_humongous()) { _g1h->set_humongous_is_live(obj); } else { assert(in_cset_state.is_default() || in_cset_state.is_ext(), "In_cset_state must be NotInCSet or Ext here, but is " CSETSTATE_FORMAT, in_cset_state.value()); } assert(obj != NULL, "Must be"); update_rs(from, p, obj); } template <class T> inline void G1ParScanThreadState::push_on_queue(T* ref) { assert(verify_ref(ref), "sanity"); _refs->push(ref); --- 45,67 ---- obj = (oop) m->decode_pointer(); } else { obj = copy_to_survivor_space(in_cset_state, obj, m); } oopDesc::encode_store_heap_oop(p, obj); ! } else { ! if (in_cset_state.is_humongous()) { _g1h->set_humongous_is_live(obj); } else { assert(in_cset_state.is_default() || in_cset_state.is_ext(), "In_cset_state must be NotInCSet or Ext here, but is " CSETSTATE_FORMAT, in_cset_state.value()); } + } assert(obj != NULL, "Must be"); + if (!HeapRegion::is_in_same_region(p, obj)) { update_rs(from, p, obj); + } } template <class T> inline void G1ParScanThreadState::push_on_queue(T* ref) { assert(verify_ref(ref), "sanity"); _refs->push(ref);
< prev index next >