< prev index next >

src/hotspot/share/gc/g1/g1CodeBlobClosure.hpp

Print this page

52     }
53   };
54 
55   // Mark all oops below TAMS.
56   class MarkingOopClosure : public OopClosure {
57     G1ConcurrentMark* _cm;
58     uint _worker_id;
59 
60     template <typename T>
61     void do_oop_work(T* p);
62 
63   public:
64     MarkingOopClosure(uint worker_id);
65 
66     void do_oop(oop* o);
67     void do_oop(narrowOop* o);
68   };
69 
70   HeapRegionGatheringOopClosure _oc;
71   MarkingOopClosure _marking_oc;
72 
73   bool _strong;


74 public:
75   G1CodeBlobClosure(uint worker_id, OopClosure* oc, bool strong) :
76     _oc(oc), _marking_oc(worker_id), _strong(strong) { }
77 
78   void do_evacuation_and_fixup(nmethod* nm);
79   void do_marking(nmethod* nm);
80 
81   void do_code_blob(CodeBlob* cb);
82 };
83 
84 #endif // SHARE_GC_G1_G1CODEBLOBCLOSURE_HPP

52     }
53   };
54 
55   // Mark all oops below TAMS.
56   class MarkingOopClosure : public OopClosure {
57     G1ConcurrentMark* _cm;
58     uint _worker_id;
59 
60     template <typename T>
61     void do_oop_work(T* p);
62 
63   public:
64     MarkingOopClosure(uint worker_id);
65 
66     void do_oop(oop* o);
67     void do_oop(narrowOop* o);
68   };
69 
70   HeapRegionGatheringOopClosure _oc;
71   MarkingOopClosure _marking_oc;

72   bool _strong;
73   bool _keepalive_is_strong;
74 
75 public:
76   G1CodeBlobClosure(uint worker_id, OopClosure* oc, bool strong, bool keepalive_is_strong) :
77     _oc(oc), _marking_oc(worker_id), _strong(strong), _keepalive_is_strong(keepalive_is_strong) { }
78 
79   void do_evacuation_and_fixup(nmethod* nm);
80   void do_marking(nmethod* nm);
81 
82   void do_code_blob(CodeBlob* cb);
83 };
84 
85 #endif // SHARE_GC_G1_G1CODEBLOBCLOSURE_HPP
< prev index next >