hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
changeset 27681 cc54c45a93ac
parent 27624 fe43edc5046d
child 27889 7d50f95e0076
equal deleted inserted replaced
27680:8ecc0871c18e 27681:cc54c45a93ac
  1002 }
  1002 }
  1003 
  1003 
  1004 HeapWord* G1OffsetTableContigSpace::saved_mark_word() const {
  1004 HeapWord* G1OffsetTableContigSpace::saved_mark_word() const {
  1005   G1CollectedHeap* g1h = G1CollectedHeap::heap();
  1005   G1CollectedHeap* g1h = G1CollectedHeap::heap();
  1006   assert( _gc_time_stamp <= g1h->get_gc_time_stamp(), "invariant" );
  1006   assert( _gc_time_stamp <= g1h->get_gc_time_stamp(), "invariant" );
  1007   if (_gc_time_stamp < g1h->get_gc_time_stamp())
  1007   HeapWord* local_top = top();
  1008     return top();
  1008   OrderAccess::loadload();
  1009   else
  1009   if (_gc_time_stamp < g1h->get_gc_time_stamp()) {
       
  1010     return local_top;
       
  1011   } else {
  1010     return Space::saved_mark_word();
  1012     return Space::saved_mark_word();
       
  1013   }
  1011 }
  1014 }
  1012 
  1015 
  1013 void G1OffsetTableContigSpace::record_top_and_timestamp() {
  1016 void G1OffsetTableContigSpace::record_top_and_timestamp() {
  1014   G1CollectedHeap* g1h = G1CollectedHeap::heap();
  1017   G1CollectedHeap* g1h = G1CollectedHeap::heap();
  1015   unsigned curr_gc_time_stamp = g1h->get_gc_time_stamp();
  1018   unsigned curr_gc_time_stamp = g1h->get_gc_time_stamp();