--- old/src/hotspot/share/gc/g1/g1EvacFailure.cpp 2018-03-21 16:41:01.959888252 +0100 +++ new/src/hotspot/share/gc/g1/g1EvacFailure.cpp 2018-03-21 16:41:01.767888259 +0100 @@ -34,6 +34,8 @@ #include "gc/g1/heapRegion.hpp" #include "gc/g1/heapRegionRemSet.hpp" #include "gc/shared/preservedMarks.inline.hpp" +#include "oops/access.inline.hpp" +#include "oops/compressedOops.inline.hpp" class UpdateRSetDeferred : public ExtendedOopClosure { private: @@ -51,12 +53,12 @@ assert(_g1->heap_region_containing(p)->is_in_reserved(p), "paranoia"); assert(!_g1->heap_region_containing(p)->is_survivor(), "Unexpected evac failure in survivor region"); - T const o = oopDesc::load_heap_oop(p); - if (oopDesc::is_null(o)) { + T const o = RawAccess<>::oop_load(p); + if (CompressedOops::is_null(o)) { return; } - if (HeapRegion::is_in_same_region(p, oopDesc::decode_heap_oop(o))) { + if (HeapRegion::is_in_same_region(p, CompressedOops::decode(o))) { return; } size_t card_index = _ct->index_for(p);