--- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp Wed Mar 28 11:38:47 2018 +0200
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp Mon Mar 26 17:01:32 2018 +0200
@@ -62,6 +62,7 @@
#include "memory/iterator.inline.hpp"
#include "memory/padded.hpp"
#include "memory/resourceArea.hpp"
+#include "oops/access.inline.hpp"
#include "oops/oop.inline.hpp"
#include "prims/jvmtiExport.hpp"
#include "runtime/atomic.hpp"
@@ -6638,6 +6639,11 @@
_mark_stack(mark_stack)
{ }
+template <class T> void PushAndMarkVerifyClosure::do_oop_work(T *p) {
+ oop obj = RawAccess<>::oop_load(p);
+ do_oop(obj);
+}
+
void PushAndMarkVerifyClosure::do_oop(oop* p) { PushAndMarkVerifyClosure::do_oop_work(p); }
void PushAndMarkVerifyClosure::do_oop(narrowOop* p) { PushAndMarkVerifyClosure::do_oop_work(p); }