< prev index next >

src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp

Print this page

        

*** 931,959 **** class IsAliveClosure: public BoolObjectClosure { public: virtual bool do_object_b(oop p); }; - class KeepAliveClosure: public OopClosure { - private: - ParCompactionManager* _compaction_manager; - protected: - template <class T> inline void do_oop_work(T* p); - public: - KeepAliveClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } - virtual void do_oop(oop* p); - virtual void do_oop(narrowOop* p); - }; - - class FollowStackClosure: public VoidClosure { - private: - ParCompactionManager* _compaction_manager; - public: - FollowStackClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } - virtual void do_void(); - }; - class AdjustPointerClosure: public ExtendedOopClosure { public: template <typename T> void do_oop_nv(T* p); virtual void do_oop(oop* p); virtual void do_oop(narrowOop* p); --- 931,940 ----
*** 965,975 **** class AdjustKlassClosure : public KlassClosure { public: void do_klass(Klass* klass); }; - friend class KeepAliveClosure; friend class FollowStackClosure; friend class AdjustPointerClosure; friend class AdjustKlassClosure; friend class FollowKlassClosure; friend class InstanceClassLoaderKlass; --- 946,955 ----
*** 1140,1173 **** // Reset time since last full gc static void reset_millis_since_last_gc(); public: - class MarkAndPushClosure: public ExtendedOopClosure { - private: - ParCompactionManager* _compaction_manager; - public: - MarkAndPushClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } - - template <typename T> void do_oop_nv(T* p); - virtual void do_oop(oop* p); - virtual void do_oop(narrowOop* p); - - // This closure provides its own oop verification code. - debug_only(virtual bool should_verify_oops() { return false; }) - }; - - // The one and only place to start following the classes. - // Should only be applied to the ClassLoaderData klasses list. - class FollowKlassClosure : public KlassClosure { - private: - MarkAndPushClosure* _mark_and_push_closure; - public: - FollowKlassClosure(MarkAndPushClosure* mark_and_push_closure) : - _mark_and_push_closure(mark_and_push_closure) { } - void do_klass(Klass* klass); - }; PSParallelCompact(); static void invoke(bool maximum_heap_compaction); static bool invoke_no_policy(bool maximum_heap_compaction); --- 1120,1129 ----
*** 1198,1213 **** } // Marking support static inline bool mark_obj(oop obj); static inline bool is_marked(oop obj); - // Check mark and maybe push on marking stack - template <class T> static inline void mark_and_push(ParCompactionManager* cm, - T* p); - template <class T> static inline void adjust_pointer(T* p); ! static inline void follow_klass(ParCompactionManager* cm, Klass* klass); static void follow_class_loader(ParCompactionManager* cm, ClassLoaderData* klass); // Compaction support. --- 1154,1165 ---- } // Marking support static inline bool mark_obj(oop obj); static inline bool is_marked(oop obj); ! template <class T> static inline void adjust_pointer(T* p); static void follow_class_loader(ParCompactionManager* cm, ClassLoaderData* klass); // Compaction support.
*** 1335,1349 **** inline bool PSParallelCompact::is_marked(oop obj) { return mark_bitmap()->is_marked(obj); } - template <class T> - inline void PSParallelCompact::KeepAliveClosure::do_oop_work(T* p) { - mark_and_push(_compaction_manager, p); - } - inline bool PSParallelCompact::print_phases() { return _print_phases; } inline double PSParallelCompact::normal_distribution(double density) { --- 1287,1296 ----
< prev index next >