< prev index next >

src/hotspot/share/gc/parallel/psParallelCompact.inline.hpp

8211447_01: revision due to comments from StefanJ and Thomas

8211447: Replace oop_pc_update_pointers with oop_iterate and closure

*** 122,135 **** RawAccess<IS_NOT_NULL>::oop_store(p, new_obj); } } } ! template <typename T> ! void PSParallelCompact::AdjustPointerClosure::do_oop_work(T* p) { ! adjust_pointer(p, _cm); ! } ! inline void PSParallelCompact::AdjustPointerClosure::do_oop(oop* p) { do_oop_work(p); } ! inline void PSParallelCompact::AdjustPointerClosure::do_oop(narrowOop* p) { do_oop_work(p); } #endif // SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP --- 122,144 ---- RawAccess<IS_NOT_NULL>::oop_store(p, new_obj); } } } ! class PCAdjustPointerClosure: public BasicOopIterateClosure { ! public: ! PCAdjustPointerClosure(ParCompactionManager* cm) { ! assert(cm != NULL, "associate ParCompactionManage should not be NULL"); ! _cm = cm; ! } ! template <typename T> void do_oop_nv(T* p) { PSParallelCompact::adjust_pointer(p, _cm); } ! virtual void do_oop(oop* p) { do_oop_nv(p); } ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } ! // This closure provides its own oop verification code. ! debug_only(virtual bool should_verify_oops() { return false; }) ! virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; } ! private: ! ParCompactionManager* _cm; ! }; #endif // SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
< prev index next >