117 static KeepAliveClosure keep_alive; 118 119 public: 120 // Public closures 121 static IsAliveClosure is_alive; 122 static FollowRootClosure follow_root_closure; 123 static MarkAndPushClosure mark_and_push_closure; 124 static FollowStackClosure follow_stack_closure; 125 static CLDToOopClosure follow_cld_closure; 126 static AdjustPointerClosure adjust_pointer_closure; 127 static CLDToOopClosure adjust_cld_closure; 128 129 // Accessors 130 static uint total_invocations() { return _total_invocations; } 131 132 // Reference Processing 133 static ReferenceProcessor* const ref_processor() { return _ref_processor; } 134 static void set_ref_processor(ReferenceProcessor* rp); 135 136 // Archive Object handling 137 static inline bool is_archive_object(oop object); 138 139 static STWGCTimer* gc_timer() { return _gc_timer; } 140 static SerialOldTracer* gc_tracer() { return _gc_tracer; } 141 142 static void preserve_mark(oop p, markOop mark); 143 // Save the mark word so it can be restored later 144 static void adjust_marks(); // Adjust the pointers in the preserved marks table 145 static void restore_marks(); // Restore the marks that we saved in preserve_mark 146 147 static int adjust_pointers(oop obj); 148 149 static void follow_stack(); // Empty marking stack. 150 151 static void follow_klass(Klass* klass); 152 153 static void follow_cld(ClassLoaderData* cld); 154 155 template <class T> static inline void adjust_pointer(T* p); 156 | 117 static KeepAliveClosure keep_alive; 118 119 public: 120 // Public closures 121 static IsAliveClosure is_alive; 122 static FollowRootClosure follow_root_closure; 123 static MarkAndPushClosure mark_and_push_closure; 124 static FollowStackClosure follow_stack_closure; 125 static CLDToOopClosure follow_cld_closure; 126 static AdjustPointerClosure adjust_pointer_closure; 127 static CLDToOopClosure adjust_cld_closure; 128 129 // Accessors 130 static uint total_invocations() { return _total_invocations; } 131 132 // Reference Processing 133 static ReferenceProcessor* const ref_processor() { return _ref_processor; } 134 static void set_ref_processor(ReferenceProcessor* rp); 135 136 // Archive Object handling 137 static inline bool is_closed_archive_object(oop object); 138 static inline bool is_open_archive_object(oop object); 139 static inline bool is_archive_object(oop object); 140 141 static STWGCTimer* gc_timer() { return _gc_timer; } 142 static SerialOldTracer* gc_tracer() { return _gc_tracer; } 143 144 static void preserve_mark(oop p, markOop mark); 145 // Save the mark word so it can be restored later 146 static void adjust_marks(); // Adjust the pointers in the preserved marks table 147 static void restore_marks(); // Restore the marks that we saved in preserve_mark 148 149 static int adjust_pointers(oop obj); 150 151 static void follow_stack(); // Empty marking stack. 152 153 static void follow_klass(Klass* klass); 154 155 static void follow_cld(ClassLoaderData* cld); 156 157 template <class T> static inline void adjust_pointer(T* p); 158 |