src/share/vm/gc/g1/g1MarkSweep.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/gc/g1/g1MarkSweep.cpp

src/share/vm/gc/g1/g1MarkSweep.cpp

Print this page

        

*** 202,212 **** prepare_compaction(); } class G1AdjustPointersClosure: public HeapRegionClosure { public: ! bool doHeapRegion(HeapRegion* r) { if (r->is_humongous()) { if (r->is_starts_humongous()) { // We must adjust the pointers on the single H object. oop obj = oop(r->bottom()); // point all the oops to the new location --- 202,212 ---- prepare_compaction(); } class G1AdjustPointersClosure: public HeapRegionClosure { public: ! void doHeapRegion(HeapRegion* r) { if (r->is_humongous()) { if (r->is_starts_humongous()) { // We must adjust the pointers on the single H object. oop obj = oop(r->bottom()); // point all the oops to the new location
*** 214,224 **** } } else if (!r->is_pinned()) { // This really ought to be "as_CompactibleSpace"... r->adjust_pointers(); } - return false; } }; class G1AlwaysTrueClosure: public BoolObjectClosure { public: --- 214,223 ----
*** 262,272 **** class G1SpaceCompactClosure: public HeapRegionClosure { public: G1SpaceCompactClosure() {} ! bool doHeapRegion(HeapRegion* hr) { if (hr->is_humongous()) { if (hr->is_starts_humongous()) { oop obj = oop(hr->bottom()); if (obj->is_gc_marked()) { obj->init_mark(); --- 261,271 ---- class G1SpaceCompactClosure: public HeapRegionClosure { public: G1SpaceCompactClosure() {} ! void doHeapRegion(HeapRegion* hr) { if (hr->is_humongous()) { if (hr->is_starts_humongous()) { oop obj = oop(hr->bottom()); if (obj->is_gc_marked()) { obj->init_mark();
*** 276,286 **** } hr->reset_during_compaction(); } else if (!hr->is_pinned()) { hr->compact(); } - return false; } }; void G1MarkSweep::mark_sweep_phase4() { // All pointers are now adjusted, move objects accordingly --- 275,284 ----
*** 359,369 **** // We'll recalculate total used bytes and recreate the free list // at the end of the GC, so no point in updating those values here. _g1h->remove_from_old_sets(0, _humongous_regions_removed); } ! bool G1PrepareCompactClosure::doHeapRegion(HeapRegion* hr) { if (hr->is_humongous()) { oop obj = oop(hr->humongous_start_region()->bottom()); if (hr->is_starts_humongous() && obj->is_gc_marked()) { obj->forward_to(obj); } --- 357,367 ---- // We'll recalculate total used bytes and recreate the free list // at the end of the GC, so no point in updating those values here. _g1h->remove_from_old_sets(0, _humongous_regions_removed); } ! void G1PrepareCompactClosure::doHeapRegion(HeapRegion* hr) { if (hr->is_humongous()) { oop obj = oop(hr->humongous_start_region()->bottom()); if (hr->is_starts_humongous() && obj->is_gc_marked()) { obj->forward_to(obj); }
*** 371,377 **** free_humongous_region(hr); } } else if (!hr->is_pinned()) { prepare_for_compaction(hr, hr->end()); } - return false; } --- 369,374 ----
src/share/vm/gc/g1/g1MarkSweep.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File