1.1 --- a/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Tue Feb 09 13:56:09 2010 -0800 1.2 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Thu Feb 11 15:52:19 2010 -0800 1.3 @@ -104,3 +104,16 @@ 1.4 } 1.5 } 1.6 } 1.7 + 1.8 +template <class T> inline void G1ParPushHeapRSClosure::do_oop_nv(T* p) { 1.9 + T heap_oop = oopDesc::load_heap_oop(p); 1.10 + 1.11 + if (!oopDesc::is_null(heap_oop)) { 1.12 + oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); 1.13 + if (_g1->in_cset_fast_test(obj)) { 1.14 + Prefetch::write(obj->mark_addr(), 0); 1.15 + Prefetch::read(obj->mark_addr(), (HeapWordSize*2)); 1.16 + _par_scan_state->push_on_queue(p); 1.17 + } 1.18 + } 1.19 +}