--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Mon Jun 13 13:48:18 2011 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Tue Jun 14 10:33:43 2011 -0400
@@ -33,6 +33,7 @@
class CMBitMap;
class CMMarkStack;
class G1ParScanThreadState;
+class CMTask;
// A class that scans oops in a given heap region (much as OopsInGenClosure
// scans oops in a generation.)
@@ -176,4 +177,16 @@
int out_of_region() { return _out_of_region; }
};
+// Closure for iterating over object fields during concurrent marking
+class G1CMOopClosure : public OopClosure {
+ G1CollectedHeap* _g1h;
+ ConcurrentMark* _cm;
+ CMTask* _task;
+public:
+ G1CMOopClosure(G1CollectedHeap* g1h, ConcurrentMark* cm, CMTask* task);
+ template <class T> void do_oop_nv(T* p);
+ virtual void do_oop( oop* p) { do_oop_nv(p); }
+ virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
+};
+
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP