src/share/vm/jfr/leakprofiler/chains/rootSetClosure.hpp

changeset 9885
8e875c964f41
parent 9858
b985cbb00e68
equal deleted inserted replaced
9884:1258121876f8 9885:8e875c964f41
24 24
25 #ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP 25 #ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
26 #define SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP 26 #define SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
27 27
28 #include "memory/iterator.hpp" 28 #include "memory/iterator.hpp"
29 #include "oops/oop.hpp"
30 29
31 class EdgeQueue; 30 template <typename Delegate>
32
33 class RootSetClosure: public ExtendedOopClosure { // BasicOopIterateClosure 31 class RootSetClosure: public ExtendedOopClosure { // BasicOopIterateClosure
34 private: 32 private:
35 RootSetClosure(EdgeQueue* edge_queue); 33 Delegate* const _delegate;
36 EdgeQueue* _edge_queue;
37 void closure_impl(const oop* reference, const oop pointee);
38 public: 34 public:
39 static void add_to_queue(EdgeQueue* edge_queue); 35 RootSetClosure(Delegate* delegate);
40 static void process_roots(OopClosure* closure); 36 void process();
41 37
42 virtual void do_oop(oop* reference); 38 virtual void do_oop(oop* reference);
43 virtual void do_oop(narrowOop* reference); 39 virtual void do_oop(narrowOop* reference);
44 }; 40 };
45 41

mercurial