50 bool has_freed_regions();
51
52 protected:
53 class G1CalculatePointersClosure : public HeapRegionClosure {
54 protected:
55 G1CollectedHeap* _g1h;
56 G1CMBitMap* _bitmap;
57 G1FullGCCompactionPoint* _cp;
58 uint _humongous_regions_removed;
59
60 virtual void prepare_for_compaction(HeapRegion* hr);
61 void prepare_for_compaction_work(G1FullGCCompactionPoint* cp, HeapRegion* hr);
62 void free_humongous_region(HeapRegion* hr);
63 void reset_region_metadata(HeapRegion* hr);
64
65 public:
66 G1CalculatePointersClosure(G1CMBitMap* bitmap,
67 G1FullGCCompactionPoint* cp);
68
69 void update_sets();
70 bool do_heap_region(HeapRegion* hr);
71 bool freed_regions();
72 };
73
74 class G1PrepareCompactLiveClosure : public StackObj {
75 G1FullGCCompactionPoint* _cp;
76
77 public:
78 G1PrepareCompactLiveClosure(G1FullGCCompactionPoint* cp);
79 size_t apply(oop object);
80 };
81
82 class G1RePrepareClosure : public StackObj {
83 G1FullGCCompactionPoint* _cp;
84 HeapRegion* _current;
85
86 public:
87 G1RePrepareClosure(G1FullGCCompactionPoint* hrcp,
88 HeapRegion* hr) :
89 _cp(hrcp),
90 _current(hr) { }
|
50 bool has_freed_regions();
51
52 protected:
53 class G1CalculatePointersClosure : public HeapRegionClosure {
54 protected:
55 G1CollectedHeap* _g1h;
56 G1CMBitMap* _bitmap;
57 G1FullGCCompactionPoint* _cp;
58 uint _humongous_regions_removed;
59
60 virtual void prepare_for_compaction(HeapRegion* hr);
61 void prepare_for_compaction_work(G1FullGCCompactionPoint* cp, HeapRegion* hr);
62 void free_humongous_region(HeapRegion* hr);
63 void reset_region_metadata(HeapRegion* hr);
64
65 public:
66 G1CalculatePointersClosure(G1CMBitMap* bitmap,
67 G1FullGCCompactionPoint* cp);
68
69 void update_sets();
70 bool doHeapRegion(HeapRegion* hr);
71 bool freed_regions();
72 };
73
74 class G1PrepareCompactLiveClosure : public StackObj {
75 G1FullGCCompactionPoint* _cp;
76
77 public:
78 G1PrepareCompactLiveClosure(G1FullGCCompactionPoint* cp);
79 size_t apply(oop object);
80 };
81
82 class G1RePrepareClosure : public StackObj {
83 G1FullGCCompactionPoint* _cp;
84 HeapRegion* _current;
85
86 public:
87 G1RePrepareClosure(G1FullGCCompactionPoint* hrcp,
88 HeapRegion* hr) :
89 _cp(hrcp),
90 _current(hr) { }
|