--- old/src/hotspot/share/gc/g1/g1HeapVerifier.cpp 2018-03-22 16:37:38.348885682 +0100 +++ new/src/hotspot/share/gc/g1/g1HeapVerifier.cpp 2018-03-22 16:37:38.152885689 +0100 @@ -38,6 +38,8 @@ #include "logging/log.hpp" #include "logging/logStream.hpp" #include "memory/resourceArea.hpp" +#include "oops/access.inline.hpp" +#include "oops/compressedOops.inline.hpp" #include "oops/oop.inline.hpp" #include "runtime/handles.inline.hpp" @@ -58,9 +60,9 @@ bool failures() { return _failures; } template void do_oop_nv(T* p) { - T heap_oop = oopDesc::load_heap_oop(p); - if (!oopDesc::is_null(heap_oop)) { - oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + T heap_oop = RawAccess<>::oop_load(p); + if (!CompressedOops::is_null(heap_oop)) { + oop obj = CompressedOops::decode_not_null(heap_oop); if (_g1h->is_obj_dead_cond(obj, _vo)) { Log(gc, verify) log; log.error("Root location " PTR_FORMAT " points to dead obj " PTR_FORMAT, p2i(p), p2i(obj)); @@ -101,9 +103,9 @@ // in the code root list of the heap region containing the // object referenced by p. - T heap_oop = oopDesc::load_heap_oop(p); - if (!oopDesc::is_null(heap_oop)) { - oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + T heap_oop = RawAccess<>::oop_load(p); + if (!CompressedOops::is_null(heap_oop)) { + oop obj = CompressedOops::decode_not_null(heap_oop); // Now fetch the region containing the object HeapRegion* hr = _g1h->heap_region_containing(obj); @@ -186,7 +188,7 @@ void do_oop( oop *p) { do_oop_work(p); } template void do_oop_work(T *p) { - oop obj = oopDesc::load_decode_heap_oop(p); + oop obj = RawAccess<>::oop_load(p); guarantee(obj == NULL || !_g1h->is_obj_dead_cond(obj, _vo), "Dead object referenced by a not dead object"); } @@ -240,7 +242,7 @@ void do_oop( oop *p) { do_oop_work(p); } template void do_oop_work(T *p) { - oop obj = oopDesc::load_decode_heap_oop(p); + oop obj = RawAccess<>::oop_load(p); if (_hr->is_open_archive()) { guarantee(obj == NULL || G1ArchiveAllocator::is_archive_object(obj),