--- old/src/hotspot/share/classfile/javaClasses.cpp 2018-03-16 15:34:09.491076336 +0100 +++ new/src/hotspot/share/classfile/javaClasses.cpp 2018-03-16 15:34:09.291076343 +0100 @@ -39,6 +39,7 @@ #include "memory/metaspaceShared.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" +#include "oops/access.inline.hpp" #include "oops/fieldStreams.hpp" #include "oops/instanceKlass.hpp" #include "oops/instanceMirrorKlass.hpp" @@ -1867,11 +1868,7 @@ oop java_lang_Throwable::unassigned_stacktrace() { InstanceKlass* ik = SystemDictionary::Throwable_klass(); address addr = ik->static_field_addr(static_unassigned_stacktrace_offset); - if (UseCompressedOops) { - return oopDesc::load_decode_heap_oop((narrowOop *)addr); - } else { - return oopDesc::load_decode_heap_oop((oop*)addr); - } + return HeapAccess<>::oop_load((HeapWord*)addr); } oop java_lang_Throwable::backtrace(oop throwable) { @@ -4134,11 +4131,8 @@ bool java_lang_System::has_security_manager() { InstanceKlass* ik = SystemDictionary::System_klass(); address addr = ik->static_field_addr(static_security_offset); - if (UseCompressedOops) { - return oopDesc::load_decode_heap_oop((narrowOop *)addr) != NULL; - } else { - return oopDesc::load_decode_heap_oop((oop*)addr) != NULL; - } + oop obj = HeapAccess<>::oop_load((HeapWord*)addr); + return obj != NULL; } int java_lang_Class::_klass_offset;