--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Wed Feb 20 10:22:46 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Wed Feb 20 16:29:29 2019 +0100
@@ -316,8 +316,13 @@
}
}
+template<bool RESOLVE>
inline bool ShenandoahHeap::requires_marking(const void* entry) const {
- return !_marking_context->is_marked(oop(entry));
+ oop obj = oop(entry);
+ if (RESOLVE) {
+ obj = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
+ }
+ return !_marking_context->is_marked(obj);
}
template <class T>