< prev index next >
src/share/vm/gc/shared/genOopClosures.hpp
Print this page
@@ -40,11 +40,10 @@
// 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
@@ -61,26 +60,20 @@
// 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) {};
+ _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);
- }
+ 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 >