src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp

changeset 1696
0414c1049f15
parent 1280
df6caf649ff7
child 1907
c18cbe5936b8
     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 +}

mercurial