< prev index next >

src/hotspot/share/gc/shared/genOopClosures.inline.hpp

Print this page

        

*** 66,78 **** 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) { --- 66,80 ---- if ((HeapWord*)obj < gen_boundary()) { rs()->write_ref_field_gc_par(p, obj); } } ! inline void OopsInClassLoaderDataOrGenClosure::do_cld_barrier() { ! assert(_scanned_cld != NULL, "Must be"); ! if (!_scanned_cld->has_modified_oops()) { ! _scanned_cld->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) {
*** 85,96 **** 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); } } --- 87,98 ---- 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_cld()) { ! do_cld_barrier(); } else if (_gc_barrier) { // Now call parent closure do_barrier(p); } }
*** 109,120 **** 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); } } --- 111,122 ---- 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_cld()) { ! do_cld_barrier(); } else if (_gc_barrier) { // Now call parent closure do_barrier(p); } }
< prev index next >