< prev index next >
src/hotspot/share/gc/shared/generation.hpp
Print this page
rev 47957 : 8191564: Refactor GC related servicability code into GC specific subclasses
*** 56,65 ****
--- 56,66 ----
//
// ParNewGeneration + ConcurrentMarkSweepGeneration
//
class DefNewGeneration;
+ class GCMemoryManager;
class GenerationSpec;
class CompactibleSpace;
class ContiguousSpace;
class CompactPoint;
class OopsInGenClosure;
*** 84,93 ****
--- 85,96 ----
private:
jlong _time_of_last_gc; // time when last gc on this generation happened (ms)
MemRegion _prev_used_region; // for collectors that want to "remember" a value for
// used region at some specific point during collection.
+ GCMemoryManager* _memory_manager;
+
protected:
// Minimum and maximum addresses for memory reserved (not necessarily
// committed) for generation.
// Used by card marking code. Must not overlap with address ranges of
// other generations.
*** 104,114 ****
// Statistics for garbage collection
GCStats* _gc_stats;
// Initialize the generation.
! Generation(ReservedSpace rs, size_t initial_byte_size);
// Apply "cl->do_oop" to (the address of) (exactly) all the ref fields in
// "sp" that point into younger generations.
// The iteration is only over objects allocated at the start of the
// iterations; objects allocated as a result of applying the closure are
--- 107,117 ----
// Statistics for garbage collection
GCStats* _gc_stats;
// Initialize the generation.
! Generation(ReservedSpace rs, size_t initial_byte_size, GCMemoryManager* memory_manager);
// Apply "cl->do_oop" to (the address of) (exactly) all the ref fields in
// "sp" that point into younger generations.
// The iteration is only over objects allocated at the start of the
// iterations; objects allocated as a result of applying the closure are
*** 132,141 ****
--- 135,148 ----
// (we expect its low byte to be zero - see implementation of post_barrier)
LogOfGenGrain = 16 ARM32_ONLY(+1),
GenGrain = 1 << LogOfGenGrain
};
+ GCMemoryManager* memory_manager() {
+ return _memory_manager;
+ }
+
// allocate and initialize ("weak") refs processing support
virtual void ref_processor_init();
void set_ref_processor(ReferenceProcessor* rp) {
assert(_ref_processor == NULL, "clobbering existing _ref_processor");
_ref_processor = rp;
< prev index next >