< prev index next >

src/share/vm/gc/shared/genOopClosures.hpp

Print this page

        

*** 40,50 **** // method at the end of their own do_oop method! // Note: no do_oop defined, this is an abstract class. class OopsInGenClosure : public ExtendedOopClosure { private: - Generation* _orig_gen; // generation originally set in ctor Generation* _gen; // generation being scanned protected: // Some subtypes need access. HeapWord* _gen_boundary; // start of generation --- 40,49 ----
*** 61,86 **** // Version for use by closures that may be called in parallel code. template <class T> void par_do_barrier(T* p); public: OopsInGenClosure() : ExtendedOopClosure(NULL), ! _orig_gen(NULL), _gen(NULL), _gen_boundary(NULL), _rs(NULL) {}; OopsInGenClosure(Generation* gen); - void set_generation(Generation* gen); - - void reset_generation() { _gen = _orig_gen; } // Problem with static closures: must have _gen_boundary set at some point, // but cannot do this until after the heap is initialized. ! void set_orig_generation(Generation* gen) { ! _orig_gen = gen; ! set_generation(gen); ! } HeapWord* gen_boundary() { return _gen_boundary; } - }; // Super class for scan closures. It contains code to dirty scanned Klasses. class OopsInKlassOrGenClosure: public OopsInGenClosure { Klass* _scanned_klass; --- 60,79 ---- // Version for use by closures that may be called in parallel code. template <class T> void par_do_barrier(T* p); public: OopsInGenClosure() : ExtendedOopClosure(NULL), ! _gen(NULL), _gen_boundary(NULL), _rs(NULL) {}; OopsInGenClosure(Generation* gen); // Problem with static closures: must have _gen_boundary set at some point, // but cannot do this until after the heap is initialized. ! void set_generation(Generation* gen); ! void assert_generation(Generation* gen); HeapWord* gen_boundary() { return _gen_boundary; } }; // Super class for scan closures. It contains code to dirty scanned Klasses. class OopsInKlassOrGenClosure: public OopsInGenClosure { Klass* _scanned_klass;
< prev index next >