src/hotspot/share/gc/g1/g1OopClosures.inline.hpp
changeset 50752 9d62da00bf15
parent 50728 9375184cec98
child 52348 21fdf8d9a8b6
equal deleted inserted replaced
50751:d9132bdf6c30 50752:9d62da00bf15
    70 inline void G1ScanClosureBase::trim_queue_partially() {
    70 inline void G1ScanClosureBase::trim_queue_partially() {
    71   _par_scan_state->trim_queue_partially();
    71   _par_scan_state->trim_queue_partially();
    72 }
    72 }
    73 
    73 
    74 template <class T>
    74 template <class T>
    75 inline void G1ScanEvacuatedObjClosure::do_oop_nv(T* p) {
    75 inline void G1ScanEvacuatedObjClosure::do_oop_work(T* p) {
    76   T heap_oop = RawAccess<>::oop_load(p);
    76   T heap_oop = RawAccess<>::oop_load(p);
    77 
    77 
    78   if (CompressedOops::is_null(heap_oop)) {
    78   if (CompressedOops::is_null(heap_oop)) {
    79     return;
    79     return;
    80   }
    80   }
    90     _par_scan_state->update_rs(_from, p, obj);
    90     _par_scan_state->update_rs(_from, p, obj);
    91   }
    91   }
    92 }
    92 }
    93 
    93 
    94 template <class T>
    94 template <class T>
    95 inline void G1CMOopClosure::do_oop_nv(T* p) {
    95 inline void G1CMOopClosure::do_oop_work(T* p) {
    96   _task->deal_with_reference(p);
    96   _task->deal_with_reference(p);
    97 }
    97 }
    98 
    98 
    99 template <class T>
    99 template <class T>
   100 inline void G1RootRegionScanClosure::do_oop_nv(T* p) {
   100 inline void G1RootRegionScanClosure::do_oop_work(T* p) {
   101   T heap_oop = RawAccess<MO_VOLATILE>::oop_load(p);
   101   T heap_oop = RawAccess<MO_VOLATILE>::oop_load(p);
   102   if (CompressedOops::is_null(heap_oop)) {
   102   if (CompressedOops::is_null(heap_oop)) {
   103     return;
   103     return;
   104   }
   104   }
   105   oop obj = CompressedOops::decode_not_null(heap_oop);
   105   oop obj = CompressedOops::decode_not_null(heap_oop);
   126          p2i(p), from->hrm_index(), from->humongous_start_region()->hrm_index());
   126          p2i(p), from->hrm_index(), from->humongous_start_region()->hrm_index());
   127 #endif // ASSERT
   127 #endif // ASSERT
   128 }
   128 }
   129 
   129 
   130 template <class T>
   130 template <class T>
   131 inline void G1ConcurrentRefineOopClosure::do_oop_nv(T* p) {
   131 inline void G1ConcurrentRefineOopClosure::do_oop_work(T* p) {
   132   T o = RawAccess<MO_VOLATILE>::oop_load(p);
   132   T o = RawAccess<MO_VOLATILE>::oop_load(p);
   133   if (CompressedOops::is_null(o)) {
   133   if (CompressedOops::is_null(o)) {
   134     return;
   134     return;
   135   }
   135   }
   136   oop obj = CompressedOops::decode_not_null(o);
   136   oop obj = CompressedOops::decode_not_null(o);
   155     to_rem_set->add_reference(p, _worker_i);
   155     to_rem_set->add_reference(p, _worker_i);
   156   }
   156   }
   157 }
   157 }
   158 
   158 
   159 template <class T>
   159 template <class T>
   160 inline void G1ScanObjsDuringUpdateRSClosure::do_oop_nv(T* p) {
   160 inline void G1ScanObjsDuringUpdateRSClosure::do_oop_work(T* p) {
   161   T o = RawAccess<>::oop_load(p);
   161   T o = RawAccess<>::oop_load(p);
   162   if (CompressedOops::is_null(o)) {
   162   if (CompressedOops::is_null(o)) {
   163     return;
   163     return;
   164   }
   164   }
   165   oop obj = CompressedOops::decode_not_null(o);
   165   oop obj = CompressedOops::decode_not_null(o);
   181     to->rem_set()->add_reference(p, _worker_i);
   181     to->rem_set()->add_reference(p, _worker_i);
   182   }
   182   }
   183 }
   183 }
   184 
   184 
   185 template <class T>
   185 template <class T>
   186 inline void G1ScanObjsDuringScanRSClosure::do_oop_nv(T* p) {
   186 inline void G1ScanObjsDuringScanRSClosure::do_oop_work(T* p) {
   187   T heap_oop = RawAccess<>::oop_load(p);
   187   T heap_oop = RawAccess<>::oop_load(p);
   188   if (CompressedOops::is_null(heap_oop)) {
   188   if (CompressedOops::is_null(heap_oop)) {
   189     return;
   189     return;
   190   }
   190   }
   191   oop obj = CompressedOops::decode_not_null(heap_oop);
   191   oop obj = CompressedOops::decode_not_null(heap_oop);
   278     }
   278     }
   279   }
   279   }
   280   trim_queue_partially();
   280   trim_queue_partially();
   281 }
   281 }
   282 
   282 
   283 template <class T> void G1RebuildRemSetClosure::do_oop_nv(T* p) {
   283 template <class T> void G1RebuildRemSetClosure::do_oop_work(T* p) {
   284   oop const obj = RawAccess<MO_VOLATILE>::oop_load(p);
   284   oop const obj = RawAccess<MO_VOLATILE>::oop_load(p);
   285   if (obj == NULL) {
   285   if (obj == NULL) {
   286     return;
   286     return;
   287   }
   287   }
   288 
   288