39 HeapRegion* _current_region;
40 HeapWord* _compaction_top;
41 PreservedMarks* _preserved_stack;
42 GrowableArray<HeapRegion*>* _compaction_regions;
43 GrowableArrayIterator<HeapRegion*> _compaction_region_iterator;
44
45 bool object_will_fit(size_t size);
46 void initialize_values();
47 void switch_region();
48 HeapRegion* next_region();
49 uint find_contiguous_before(HeapRegion* hr, uint num_regions);
50
51 public:
52 G1FullGCCompactionPoint(G1FullCollector* collector, PreservedMarks* preserved_stack);
53 ~G1FullGCCompactionPoint();
54
55 bool has_regions();
56 bool is_initialized();
57 void initialize(HeapRegion* hr);
58 void update();
59 void forward(oop object, size_t size);
60 void forward_humongous(HeapRegion* hr);
61 void add(HeapRegion* hr);
62 void add_humongous(HeapRegion* hr);
63
64 void remove_at_or_above(uint bottom);
65 HeapRegion* current_region();
66
67 GrowableArray<HeapRegion*>* regions();
68
69 PreservedMarks* preserved_stack() const {
70 assert(_preserved_stack != nullptr, "must be initialized");
71 return _preserved_stack;
72 }
73
74 void set_preserved_stack(PreservedMarks* preserved_stack) {
75 assert(_preserved_stack == nullptr, "only initialize once");
76 _preserved_stack = preserved_stack;
77 }
78 };
79
|
39 HeapRegion* _current_region;
40 HeapWord* _compaction_top;
41 PreservedMarks* _preserved_stack;
42 GrowableArray<HeapRegion*>* _compaction_regions;
43 GrowableArrayIterator<HeapRegion*> _compaction_region_iterator;
44
45 bool object_will_fit(size_t size);
46 void initialize_values();
47 void switch_region();
48 HeapRegion* next_region();
49 uint find_contiguous_before(HeapRegion* hr, uint num_regions);
50
51 public:
52 G1FullGCCompactionPoint(G1FullCollector* collector, PreservedMarks* preserved_stack);
53 ~G1FullGCCompactionPoint();
54
55 bool has_regions();
56 bool is_initialized();
57 void initialize(HeapRegion* hr);
58 void update();
59 template <bool ALT_FWD>
60 void forward(oop object, size_t size);
61 template <bool ALT_FWD>
62 void forward_humongous(HeapRegion* hr);
63 void add(HeapRegion* hr);
64 void add_humongous(HeapRegion* hr);
65
66 void remove_at_or_above(uint bottom);
67 HeapRegion* current_region();
68
69 GrowableArray<HeapRegion*>* regions();
70
71 PreservedMarks* preserved_stack() const {
72 assert(_preserved_stack != nullptr, "must be initialized");
73 return _preserved_stack;
74 }
75
76 void set_preserved_stack(PreservedMarks* preserved_stack) {
77 assert(_preserved_stack == nullptr, "only initialize once");
78 _preserved_stack = preserved_stack;
79 }
80 };
81
|