src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

Print this page
rev 6719 : imported patch fast-reclaim-main-patch
rev 6720 : imported patch fast-reclaim-alt1
rev 6721 : [mq]: fixes1
rev 6722 : [mq]: fixes-mikael2

*** 4667,4679 **** oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); assert(_worker_id == _par_scan_state->queue_num(), "sanity"); ! G1FastCSetBiasedMappedArray::in_cset_state_t state = _g1->in_cset_state(obj); ! if (state == G1FastCSetBiasedMappedArray::InCSet) { oop forwardee; if (obj->is_forwarded()) { forwardee = obj->forwardee(); } else { forwardee = _par_scan_state->copy_to_survivor_space(obj); --- 4667,4679 ---- oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); assert(_worker_id == _par_scan_state->queue_num(), "sanity"); ! G1CollectedHeap::in_cset_state_t state = _g1->in_cset_state(obj); ! if (state == G1CollectedHeap::InCSet) { oop forwardee; if (obj->is_forwarded()) { forwardee = obj->forwardee(); } else { forwardee = _par_scan_state->copy_to_survivor_space(obj);
*** 4688,4698 **** if (barrier == G1BarrierKlass) { do_klass_barrier(p, forwardee); } } else { ! if (state == G1FastCSetBiasedMappedArray::IsHumongous) { _g1->set_humongous_is_live(obj); } // The object is not in collection set. If we're a root scanning // closure during an initial mark pause then attempt to mark the object. if (do_mark_object == G1MarkFromRoot) { --- 4688,4698 ---- if (barrier == G1BarrierKlass) { do_klass_barrier(p, forwardee); } } else { ! if (state == G1CollectedHeap::IsHumongous) { _g1->set_humongous_is_live(obj); } // The object is not in collection set. If we're a root scanning // closure during an initial mark pause then attempt to mark the object. if (do_mark_object == G1MarkFromRoot) {
*** 5517,5536 **** G1KeepAliveClosure(G1CollectedHeap* g1) : _g1(g1) {} void do_oop(narrowOop* p) { guarantee(false, "Not needed"); } void do_oop(oop* p) { oop obj = *p; ! G1FastCSetBiasedMappedArray::in_cset_state_t cset_state = _g1->in_cset_state(obj); ! if (obj == NULL || cset_state == G1FastCSetBiasedMappedArray::InNeither) { return; } ! if (cset_state == G1FastCSetBiasedMappedArray::InCSet) { assert( obj->is_forwarded(), "invariant" ); *p = obj->forwardee(); } else { assert(!obj->is_forwarded(), "invariant" ); ! assert(cset_state == G1FastCSetBiasedMappedArray::IsHumongous, err_msg("Only allowed InCSet state is IsHumongous, but is %d", cset_state)); _g1->set_humongous_is_live(obj); } } }; --- 5517,5536 ---- G1KeepAliveClosure(G1CollectedHeap* g1) : _g1(g1) {} void do_oop(narrowOop* p) { guarantee(false, "Not needed"); } void do_oop(oop* p) { oop obj = *p; ! G1CollectedHeap::in_cset_state_t cset_state = _g1->in_cset_state(obj); ! if (obj == NULL || cset_state == G1CollectedHeap::InNeither) { return; } ! if (cset_state == G1CollectedHeap::InCSet) { assert( obj->is_forwarded(), "invariant" ); *p = obj->forwardee(); } else { assert(!obj->is_forwarded(), "invariant" ); ! assert(cset_state == G1CollectedHeap::IsHumongous, err_msg("Only allowed InCSet state is IsHumongous, but is %d", cset_state)); _g1->set_humongous_is_live(obj); } } };