130 131 // Non public closures 132 static KeepAliveClosure keep_alive; 133 134 public: 135 // Public closures 136 static IsAliveClosure is_alive; 137 static FollowRootClosure follow_root_closure; 138 static MarkAndPushClosure mark_and_push_closure; 139 static FollowStackClosure follow_stack_closure; 140 static CLDToOopClosure follow_cld_closure; 141 static AdjustPointerClosure adjust_pointer_closure; 142 static CLDToOopClosure adjust_cld_closure; 143 144 // Accessors 145 static uint total_invocations() { return _total_invocations; } 146 147 // Reference Processing 148 static ReferenceProcessor* const ref_processor() { return _ref_processor; } 149 150 static STWGCTimer* gc_timer() { return _gc_timer; } 151 static SerialOldTracer* gc_tracer() { return _gc_tracer; } 152 153 // Call backs for marking 154 static void mark_object(oop obj); 155 // Mark pointer and follow contents. Empty marking stack afterwards. 156 template <class T> static inline void follow_root(T* p); 157 158 // Check mark and maybe push on marking stack 159 template <class T> static void mark_and_push(T* p); 160 161 static inline void push_objarray(oop obj, size_t index); 162 163 static void follow_stack(); // Empty marking stack. 164 165 static void follow_object(oop obj); 166 167 static void follow_array(objArrayOop array, int index); 168 169 static void follow_klass(Klass* klass); | 130 131 // Non public closures 132 static KeepAliveClosure keep_alive; 133 134 public: 135 // Public closures 136 static IsAliveClosure is_alive; 137 static FollowRootClosure follow_root_closure; 138 static MarkAndPushClosure mark_and_push_closure; 139 static FollowStackClosure follow_stack_closure; 140 static CLDToOopClosure follow_cld_closure; 141 static AdjustPointerClosure adjust_pointer_closure; 142 static CLDToOopClosure adjust_cld_closure; 143 144 // Accessors 145 static uint total_invocations() { return _total_invocations; } 146 147 // Reference Processing 148 static ReferenceProcessor* const ref_processor() { return _ref_processor; } 149 150 // Archive Object handling 151 static inline bool is_archive_object(oop object); 152 153 static STWGCTimer* gc_timer() { return _gc_timer; } 154 static SerialOldTracer* gc_tracer() { return _gc_tracer; } 155 156 // Call backs for marking 157 static void mark_object(oop obj); 158 // Mark pointer and follow contents. Empty marking stack afterwards. 159 template <class T> static inline void follow_root(T* p); 160 161 // Check mark and maybe push on marking stack 162 template <class T> static void mark_and_push(T* p); 163 164 static inline void push_objarray(oop obj, size_t index); 165 166 static void follow_stack(); // Empty marking stack. 167 168 static void follow_object(oop obj); 169 170 static void follow_array(objArrayOop array, int index); 171 172 static void follow_klass(Klass* klass); |