1.1 --- a/src/share/vm/jfr/leakprofiler/chains/rootSetClosure.hpp Fri Sep 27 13:23:32 2019 +0800 1.2 +++ b/src/share/vm/jfr/leakprofiler/chains/rootSetClosure.hpp Wed Oct 09 16:11:58 2019 +0800 1.3 @@ -26,18 +26,14 @@ 1.4 #define SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP 1.5 1.6 #include "memory/iterator.hpp" 1.7 -#include "oops/oop.hpp" 1.8 1.9 -class EdgeQueue; 1.10 - 1.11 +template <typename Delegate> 1.12 class RootSetClosure: public ExtendedOopClosure { // BasicOopIterateClosure 1.13 private: 1.14 - RootSetClosure(EdgeQueue* edge_queue); 1.15 - EdgeQueue* _edge_queue; 1.16 - void closure_impl(const oop* reference, const oop pointee); 1.17 + Delegate* const _delegate; 1.18 public: 1.19 - static void add_to_queue(EdgeQueue* edge_queue); 1.20 - static void process_roots(OopClosure* closure); 1.21 + RootSetClosure(Delegate* delegate); 1.22 + void process(); 1.23 1.24 virtual void do_oop(oop* reference); 1.25 virtual void do_oop(narrowOop* reference);