< prev index next >

src/share/vm/gc/serial/markSweep.hpp

Print this page

        

*** 47,56 **** --- 47,57 ---- // // Class unloading will only occur when a full gc is invoked. // declared at end class PreservedMark; + class MarkAndPushClosure; class MarkSweep : AllStatic { // // Inline closure decls //
*** 58,74 **** public: virtual void do_oop(oop* p); virtual void do_oop(narrowOop* p); }; - class MarkAndPushClosure: public ExtendedOopClosure { - public: - template <typename T> void do_oop_nv(T* p); - virtual void do_oop(oop* p); - virtual void do_oop(narrowOop* p); - }; - class FollowStackClosure: public VoidClosure { public: virtual void do_void(); }; --- 59,68 ----
*** 144,153 **** --- 138,148 ---- // Accessors static uint total_invocations() { return _total_invocations; } // Reference Processing static ReferenceProcessor* const ref_processor() { return _ref_processor; } + static void set_ref_processor(ReferenceProcessor* rp); // Archive Object handling static inline bool is_archive_object(oop object); static STWGCTimer* gc_timer() { return _gc_timer; }
*** 169,179 **** static void follow_array(objArrayOop array, int index); static void follow_klass(Klass* klass); ! static void follow_class_loader(ClassLoaderData* cld); static int adjust_pointers(oop obj); static void preserve_mark(oop p, markOop mark); // Save the mark word so it can be restored later --- 164,174 ---- static void follow_array(objArrayOop array, int index); static void follow_klass(Klass* klass); ! static void follow_cld(ClassLoaderData* cld); static int adjust_pointers(oop obj); static void preserve_mark(oop p, markOop mark); // Save the mark word so it can be restored later
*** 181,190 **** --- 176,203 ---- static void restore_marks(); // Restore the marks that we saved in preserve_mark template <class T> static inline void adjust_pointer(T* p); }; + class MarkAndPushClosure: public ExtendedOopClosure { + public: + template <typename T> void do_oop_nv(T* p); + virtual void do_oop(oop* p); + virtual void do_oop(narrowOop* p); + + virtual bool do_metadata(); + bool do_metadata_nv(); + + virtual void do_klass(Klass* k); + void do_klass_nv(Klass* k); + + virtual void do_cld(ClassLoaderData* cld); + void do_cld_nv(ClassLoaderData* cld); + + void set_ref_processor(ReferenceProcessor* rp) { _ref_processor = rp; } + }; + class PreservedMark VALUE_OBJ_CLASS_SPEC { private: oop _obj; markOop _mark;
< prev index next >