< prev index next >

src/hotspot/share/oops/instanceRefKlass.inline.hpp

Print this page
rev 49911 : imported patch removeAllGCs


 154   template <typename T> bool operator()(T* p) const { return _mr.contains(p); }
 155 };
 156 
 157 template <bool nv, class OopClosureType>
 158 void InstanceRefKlass::oop_oop_iterate_ref_processing_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 159   const MrContains contains(mr);
 160   if (UseCompressedOops) {
 161     oop_oop_iterate_ref_processing_specialized<nv, narrowOop>(obj, closure, contains);
 162   } else {
 163     oop_oop_iterate_ref_processing_specialized<nv, oop>(obj, closure, contains);
 164   }
 165 }
 166 
 167 template <bool nv, class OopClosureType>
 168 void InstanceRefKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
 169   InstanceKlass::oop_oop_iterate<nv>(obj, closure);
 170 
 171   oop_oop_iterate_ref_processing<nv>(obj, closure);
 172 }
 173 
 174 #if INCLUDE_ALL_GCS
 175 template <bool nv, class OopClosureType>
 176 void InstanceRefKlass::oop_oop_iterate_reverse(oop obj, OopClosureType* closure) {
 177   InstanceKlass::oop_oop_iterate_reverse<nv>(obj, closure);
 178 
 179   oop_oop_iterate_ref_processing<nv>(obj, closure);
 180 }
 181 #endif // INCLUDE_ALL_GCS
 182 
 183 
 184 template <bool nv, class OopClosureType>
 185 void InstanceRefKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 186   InstanceKlass::oop_oop_iterate_bounded<nv>(obj, closure, mr);
 187 
 188   oop_oop_iterate_ref_processing_bounded<nv>(obj, closure, mr);
 189 }
 190 
 191 #ifdef ASSERT
 192 template <typename T>
 193 void InstanceRefKlass::trace_reference_gc(const char *s, oop obj) {
 194   T* referent_addr   = (T*) java_lang_ref_Reference::referent_addr_raw(obj);
 195   T* next_addr       = (T*) java_lang_ref_Reference::next_addr_raw(obj);
 196   T* discovered_addr = (T*) java_lang_ref_Reference::discovered_addr_raw(obj);
 197 
 198   log_develop_trace(gc, ref)("InstanceRefKlass %s for obj " PTR_FORMAT, s, p2i(obj));
 199   log_develop_trace(gc, ref)("     referent_addr/* " PTR_FORMAT " / " PTR_FORMAT,
 200       p2i(referent_addr), p2i(referent_addr ? RawAccess<>::oop_load(referent_addr) : (oop)NULL));
 201   log_develop_trace(gc, ref)("     next_addr/* " PTR_FORMAT " / " PTR_FORMAT,


 154   template <typename T> bool operator()(T* p) const { return _mr.contains(p); }
 155 };
 156 
 157 template <bool nv, class OopClosureType>
 158 void InstanceRefKlass::oop_oop_iterate_ref_processing_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 159   const MrContains contains(mr);
 160   if (UseCompressedOops) {
 161     oop_oop_iterate_ref_processing_specialized<nv, narrowOop>(obj, closure, contains);
 162   } else {
 163     oop_oop_iterate_ref_processing_specialized<nv, oop>(obj, closure, contains);
 164   }
 165 }
 166 
 167 template <bool nv, class OopClosureType>
 168 void InstanceRefKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
 169   InstanceKlass::oop_oop_iterate<nv>(obj, closure);
 170 
 171   oop_oop_iterate_ref_processing<nv>(obj, closure);
 172 }
 173 
 174 #if INCLUDE_OOP_OOP_ITERATE_BACKWARDS
 175 template <bool nv, class OopClosureType>
 176 void InstanceRefKlass::oop_oop_iterate_reverse(oop obj, OopClosureType* closure) {
 177   InstanceKlass::oop_oop_iterate_reverse<nv>(obj, closure);
 178 
 179   oop_oop_iterate_ref_processing<nv>(obj, closure);
 180 }
 181 #endif // INCLUDE_OOP_OOP_ITERATE_BACKWARDS
 182 
 183 
 184 template <bool nv, class OopClosureType>
 185 void InstanceRefKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 186   InstanceKlass::oop_oop_iterate_bounded<nv>(obj, closure, mr);
 187 
 188   oop_oop_iterate_ref_processing_bounded<nv>(obj, closure, mr);
 189 }
 190 
 191 #ifdef ASSERT
 192 template <typename T>
 193 void InstanceRefKlass::trace_reference_gc(const char *s, oop obj) {
 194   T* referent_addr   = (T*) java_lang_ref_Reference::referent_addr_raw(obj);
 195   T* next_addr       = (T*) java_lang_ref_Reference::next_addr_raw(obj);
 196   T* discovered_addr = (T*) java_lang_ref_Reference::discovered_addr_raw(obj);
 197 
 198   log_develop_trace(gc, ref)("InstanceRefKlass %s for obj " PTR_FORMAT, s, p2i(obj));
 199   log_develop_trace(gc, ref)("     referent_addr/* " PTR_FORMAT " / " PTR_FORMAT,
 200       p2i(referent_addr), p2i(referent_addr ? RawAccess<>::oop_load(referent_addr) : (oop)NULL));
 201   log_develop_trace(gc, ref)("     next_addr/* " PTR_FORMAT " / " PTR_FORMAT,
< prev index next >