< prev index next >
src/share/vm/gc/shared/genOopClosures.inline.hpp
Print this page
*** 66,80 ****
if ((HeapWord*)obj < gen_boundary()) {
rs()->write_ref_field_gc_par(p, obj);
}
}
- inline void OopsInKlassOrGenClosure::do_klass_barrier() {
- assert(_scanned_klass != NULL, "Must be");
- _scanned_klass->record_modified_oops();
- }
-
// NOTE! Any changes made here should also be made
// in FastScanClosure::do_oop_work()
template <class T> inline void ScanClosure::do_oop_work(T* p) {
T heap_oop = oopDesc::load_heap_oop(p);
// Should we copy the obj?
--- 66,75 ----
*** 85,97 ****
oop new_obj = obj->is_forwarded() ? obj->forwardee()
: _g->copy_to_survivor_space(obj);
oopDesc::encode_store_heap_oop_not_null(p, new_obj);
}
! if (is_scanning_a_klass()) {
! do_klass_barrier();
! } else if (_gc_barrier) {
// Now call parent closure
do_barrier(p);
}
}
}
--- 80,90 ----
oop new_obj = obj->is_forwarded() ? obj->forwardee()
: _g->copy_to_survivor_space(obj);
oopDesc::encode_store_heap_oop_not_null(p, new_obj);
}
! if (_gc_barrier) {
// Now call parent closure
do_barrier(p);
}
}
}
*** 109,121 ****
if ((HeapWord*)obj < _boundary) {
assert(!_g->to()->is_in_reserved(obj), "Scanning field twice?");
oop new_obj = obj->is_forwarded() ? obj->forwardee()
: _g->copy_to_survivor_space(obj);
oopDesc::encode_store_heap_oop_not_null(p, new_obj);
! if (is_scanning_a_klass()) {
! do_klass_barrier();
! } else if (_gc_barrier) {
// Now call parent closure
do_barrier(p);
}
}
}
--- 102,112 ----
if ((HeapWord*)obj < _boundary) {
assert(!_g->to()->is_in_reserved(obj), "Scanning field twice?");
oop new_obj = obj->is_forwarded() ? obj->forwardee()
: _g->copy_to_survivor_space(obj);
oopDesc::encode_store_heap_oop_not_null(p, new_obj);
! if (_gc_barrier) {
// Now call parent closure
do_barrier(p);
}
}
}
< prev index next >