src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp
changeset 59296 9186be5c78ba
parent 59290 97d13893ec3c
equal deleted inserted replaced
59295:8b6cc0bb93d0 59296:9186be5c78ba
    21  *
    21  *
    22  */
    22  */
    23 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCLOSURES_INLINE_HPP
    23 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCLOSURES_INLINE_HPP
    24 #define SHARE_GC_SHENANDOAH_SHENANDOAHCLOSURES_INLINE_HPP
    24 #define SHARE_GC_SHENANDOAH_SHENANDOAHCLOSURES_INLINE_HPP
    25 
    25 
       
    26 #include "gc/shared/barrierSetNMethod.hpp"
    26 #include "gc/shenandoah/shenandoahAsserts.hpp"
    27 #include "gc/shenandoah/shenandoahAsserts.hpp"
    27 #include "gc/shenandoah/shenandoahClosures.hpp"
    28 #include "gc/shenandoah/shenandoahClosures.hpp"
    28 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
    29 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
       
    30 #include "gc/shenandoah/shenandoahNMethod.inline.hpp"
    29 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
    31 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
    30 #include "oops/compressedOops.inline.hpp"
    32 #include "oops/compressedOops.inline.hpp"
    31 #include "runtime/atomic.hpp"
    33 #include "runtime/atomic.hpp"
    32 #include "runtime/thread.hpp"
    34 #include "runtime/thread.hpp"
    33 
    35 
   155 
   157 
   156 void ShenandoahEvacUpdateOopStorageRootsClosure::do_oop(narrowOop* p) {
   158 void ShenandoahEvacUpdateOopStorageRootsClosure::do_oop(narrowOop* p) {
   157   ShouldNotReachHere();
   159   ShouldNotReachHere();
   158 }
   160 }
   159 
   161 
       
   162 ShenandoahCodeBlobAndDisarmClosure::ShenandoahCodeBlobAndDisarmClosure(OopClosure* cl) :
       
   163   CodeBlobToOopClosure(cl, true /* fix_relocations */),
       
   164    _bs(BarrierSet::barrier_set()->barrier_set_nmethod()) {
       
   165 }
       
   166 
       
   167 void ShenandoahCodeBlobAndDisarmClosure::do_code_blob(CodeBlob* cb) {
       
   168   nmethod* const nm = cb->as_nmethod_or_null();
       
   169   if (nm != NULL && nm->oops_do_try_claim()) {
       
   170     assert(!ShenandoahNMethod::gc_data(nm)->is_unregistered(), "Should not be here");
       
   171     CodeBlobToOopClosure::do_code_blob(cb);
       
   172     _bs->disarm(nm);
       
   173   }
       
   174 }
       
   175 
   160 #ifdef ASSERT
   176 #ifdef ASSERT
   161 template <class T>
   177 template <class T>
   162 void ShenandoahAssertNotForwardedClosure::do_oop_work(T* p) {
   178 void ShenandoahAssertNotForwardedClosure::do_oop_work(T* p) {
   163   T o = RawAccess<>::oop_load(p);
   179   T o = RawAccess<>::oop_load(p);
   164   if (!CompressedOops::is_null(o)) {
   180   if (!CompressedOops::is_null(o)) {