< prev index next >

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

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

*** 76,87 **** oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); const InCSetState state = _g1->in_cset_state(obj); if (state.is_in_cset()) { prefetch_and_push(p, obj); } else { handle_non_cset_obj_common(state, p, obj); - _par_scan_state->update_rs(_from, p, obj); } } template <class T> --- 76,89 ---- oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); const InCSetState state = _g1->in_cset_state(obj); if (state.is_in_cset()) { prefetch_and_push(p, obj); } else { + if (HeapRegion::is_in_same_region(p, obj)) { + return; + } handle_non_cset_obj_common(state, p, obj); _par_scan_state->update_rs(_from, p, obj); } } template <class T>
*** 169,181 **** } else { HeapRegion* to = _g1->heap_region_containing(obj); if (_from == to) { return; } - handle_non_cset_obj_common(state, p, obj); - to->rem_set()->add_reference(p, _worker_i); } } template <class T> --- 171,181 ----
*** 188,197 **** --- 188,200 ---- const InCSetState state = _g1->in_cset_state(obj); if (state.is_in_cset()) { prefetch_and_push(p, obj); } else { + if (HeapRegion::is_in_same_region(p, obj)) { + return; + } handle_non_cset_obj_common(state, p, obj); } } template <class T>
< prev index next >