< prev index next >
src/hotspot/share/gc/g1/g1OopClosures.inline.hpp
Print this page
*** 193,206 ****
}
handle_non_cset_obj_common(state, p, obj);
}
}
! template <class T>
! void G1ParCopyHelper::do_klass_barrier(T* p, oop new_obj) {
if (_g1->heap_region_containing(new_obj)->is_young()) {
! _scanned_klass->record_modified_oops();
}
}
void G1ParCopyHelper::mark_object(oop obj) {
assert(!_g1->heap_region_containing(obj)->in_collection_set(), "should not mark objects in the CSet");
--- 193,205 ----
}
handle_non_cset_obj_common(state, p, obj);
}
}
! void G1ParCopyHelper::do_cld_barrier(oop new_obj) {
if (_g1->heap_region_containing(new_obj)->is_young()) {
! _scanned_cld->record_modified_oops();
}
}
void G1ParCopyHelper::mark_object(oop obj) {
assert(!_g1->heap_region_containing(obj)->in_collection_set(), "should not mark objects in the CSet");
*** 247,258 ****
// If the object is self-forwarded we don't need to explicitly
// mark it, the evacuation failure protocol will do so.
mark_forwarded_object(obj, forwardee);
}
! if (barrier == G1BarrierKlass) {
! do_klass_barrier(p, forwardee);
}
} else {
if (state.is_humongous()) {
_g1->set_humongous_is_live(obj);
}
--- 246,257 ----
// If the object is self-forwarded we don't need to explicitly
// mark it, the evacuation failure protocol will do so.
mark_forwarded_object(obj, forwardee);
}
! if (barrier == G1BarrierCLD) {
! do_cld_barrier(forwardee);
}
} else {
if (state.is_humongous()) {
_g1->set_humongous_is_live(obj);
}
*** 265,271 ****
if (do_mark_object == G1MarkFromRoot) {
mark_object(obj);
}
}
}
-
#endif // SHARE_VM_GC_G1_G1OOPCLOSURES_INLINE_HPP
--- 264,269 ----
< prev index next >