< 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 >