--- old/src/share/vm/gc/serial/genMarkSweep.cpp 2016-12-20 16:31:43.117167208 -0500 +++ new/src/share/vm/gc/serial/genMarkSweep.cpp 2016-12-20 16:31:41.881096501 -0500 @@ -55,6 +55,9 @@ #include "utilities/events.hpp" #include "utilities/stack.inline.hpp" +GenMarkSweep::GenMarkSweep() : MarkSweep() { } +GenMarkSweep::~GenMarkSweep() { } + void GenMarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, bool clear_all_softrefs) { assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint"); @@ -270,9 +273,12 @@ } class GenAdjustPointersClosure: public GenCollectedHeap::GenClosure { + MarkSweep* _ms; public: + GenAdjustPointersClosure(MarkSweep* ms) : _ms(ms) {} + ~GenAdjustPointersClosure() {} void do_generation(Generation* gen) { - gen->adjust_pointers(); + gen->adjust_pointers(_ms); } }; @@ -305,7 +311,7 @@ gch->gen_process_weak_roots(&adjust_pointer_closure); adjust_marks(); - GenAdjustPointersClosure blk; + GenAdjustPointersClosure blk(this); gch->generation_iterate(&blk, true); }