< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp
Print this page
rev 54116 : 8220780: ShenandoahBS::AccessBarrier::oop_store_in_heap_at ignores AS_NO_KEEPALIVE
@@ -224,11 +224,14 @@
return value;
}
template <typename T>
static void oop_store_in_heap(T* addr, oop value) {
+ const bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0;
+ if (keep_alive) {
ShenandoahBarrierSet::barrier_set()->write_ref_field_pre_work(addr, value);
+ }
Raw::oop_store(addr, value);
}
static void oop_store_in_heap_at(oop base, ptrdiff_t offset, oop value) {
base = ShenandoahBarrierSet::barrier_set()->write_barrier(base);
< prev index next >