--- 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);
}
};