equal
deleted
inserted
replaced
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)) { |