101 102 // Only perform reference processing if the referent object is within mr. 103 template <bool nv, class OopClosureType> 104 inline void oop_oop_iterate_ref_processing_bounded(oop obj, OopClosureType* closure, MemRegion mr); 105 106 // Reference processing 107 template <bool nv, class OopClosureType> 108 inline void oop_oop_iterate_ref_processing(oop obj, OopClosureType* closure); 109 110 111 public: 112 113 ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL) 114 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL) 115 116 #if INCLUDE_ALL_GCS 117 ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL_BACKWARDS) 118 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL_BACKWARDS) 119 #endif // INCLUDE_ALL_GCS 120 121 static void release_and_notify_pending_list_lock(BasicLock *pending_list_basic_lock); 122 static void acquire_pending_list_lock(BasicLock *pending_list_basic_lock); 123 static bool owns_pending_list_lock(JavaThread* thread); 124 125 // Update non-static oop maps so 'referent', 'nextPending' and 126 // 'discovered' will look like non-oops 127 static void update_nonstatic_oop_maps(Klass* k); 128 129 public: 130 // Verification 131 void oop_verify_on(oop obj, outputStream* st); 132 }; 133 134 #endif // SHARE_VM_OOPS_INSTANCEREFKLASS_HPP | 101 102 // Only perform reference processing if the referent object is within mr. 103 template <bool nv, class OopClosureType> 104 inline void oop_oop_iterate_ref_processing_bounded(oop obj, OopClosureType* closure, MemRegion mr); 105 106 // Reference processing 107 template <bool nv, class OopClosureType> 108 inline void oop_oop_iterate_ref_processing(oop obj, OopClosureType* closure); 109 110 111 public: 112 113 ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL) 114 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL) 115 116 #if INCLUDE_ALL_GCS 117 ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL_BACKWARDS) 118 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL_BACKWARDS) 119 #endif // INCLUDE_ALL_GCS 120 121 // Update non-static oop maps so 'referent', 'nextPending' and 122 // 'discovered' will look like non-oops 123 static void update_nonstatic_oop_maps(Klass* k); 124 125 public: 126 // Verification 127 void oop_verify_on(oop obj, outputStream* st); 128 }; 129 130 #endif // SHARE_VM_OOPS_INSTANCEREFKLASS_HPP |