src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp
changeset 54687 df2b3565f343
parent 54536 fb53a1c25903
child 57533 a2912ba36422
child 58678 9cf78a70fa4f
--- a/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp	Thu May 02 06:33:28 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp	Thu May 02 09:49:52 2019 -0400
@@ -107,4 +107,18 @@
   do_oop_work(p);
 }
 
+#ifdef ASSERT
+template <class T>
+void ShenandoahAssertNotForwardedClosure::do_oop_work(T* p) {
+  T o = RawAccess<>::oop_load(p);
+  if (!CompressedOops::is_null(o)) {
+    oop obj = CompressedOops::decode_not_null(o);
+    shenandoah_assert_not_forwarded(p, obj);
+  }
+}
+
+void ShenandoahAssertNotForwardedClosure::do_oop(narrowOop* p) { do_oop_work(p); }
+void ShenandoahAssertNotForwardedClosure::do_oop(oop* p)       { do_oop_work(p); }
+#endif
+
 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHCLOSURES_HPP