diff -r 25048be67f4a -r 187c84a5efe1 src/hotspot/share/classfile/compactHashtable.cpp --- a/src/hotspot/share/classfile/compactHashtable.cpp Wed Aug 22 16:06:51 2018 +0100 +++ b/src/hotspot/share/classfile/compactHashtable.cpp Tue Aug 14 09:59:37 2018 -0700 @@ -27,6 +27,7 @@ #include "classfile/compactHashtable.inline.hpp" #include "classfile/javaClasses.hpp" #include "logging/logMessage.hpp" +#include "memory/heapShared.inline.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceShared.hpp" #include "oops/compressedOops.inline.hpp" @@ -280,8 +281,9 @@ public: CompactHashtable_OopIterator(OopClosure *cl) : _closure(cl) {} inline void do_value(address base_address, u4 offset) const { - narrowOop o = (narrowOop)offset; - _closure->do_oop(&o); + narrowOop v = (narrowOop)offset; + oop obj = HeapShared::decode_with_archived_oop_encoding_mode(v); + _closure->do_oop(&obj); } };