src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

changeset 7645
f2e3f0e1f97d
parent 7644
2af69bed8db6
child 7647
80ac3ee51955
     1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Fri Oct 10 12:15:51 2014 +0200
     1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Fri Nov 14 15:03:39 2014 +0100
     1.3 @@ -4479,10 +4479,11 @@
     1.4  
     1.5    if (state == G1CollectedHeap::InCSet) {
     1.6      oop forwardee;
     1.7 -    if (obj->is_forwarded()) {
     1.8 -      forwardee = obj->forwardee();
     1.9 +    markOop m = obj->mark();
    1.10 +    if (m->is_marked()) {
    1.11 +      forwardee = (oop) m->decode_pointer();
    1.12      } else {
    1.13 -      forwardee = _par_scan_state->copy_to_survivor_space(obj);
    1.14 +      forwardee = _par_scan_state->copy_to_survivor_space(obj, m);
    1.15      }
    1.16      assert(forwardee != NULL, "forwardee should not be NULL");
    1.17      oopDesc::encode_store_heap_oop(p, forwardee);

mercurial