< prev index next >

src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp

Print this page
rev 50745 : imported patch remove_in_concurrent_root

*** 96,110 **** template <DecoratorSet decorators, typename BarrierSetT> template <typename T> inline void G1BarrierSet::AccessBarrier<decorators, BarrierSetT>:: oop_store_not_in_heap(T* addr, oop new_value) { ! if (HasDecorator<decorators, IN_CONCURRENT_ROOT>::value) { ! // For roots not scanned in a safepoint, we have to apply SATB barriers ! // even for roots. G1BarrierSet *bs = barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set()); bs->write_ref_field_pre<decorators>(addr); - } Raw::oop_store(addr, new_value); } #endif // SHARE_VM_GC_G1_G1BARRIERSET_INLINE_HPP --- 96,108 ---- template <DecoratorSet decorators, typename BarrierSetT> template <typename T> inline void G1BarrierSet::AccessBarrier<decorators, BarrierSetT>:: oop_store_not_in_heap(T* addr, oop new_value) { ! // Apply SATB barriers for all non-heap references, to allow ! // concurrent scanning of such references. G1BarrierSet *bs = barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set()); bs->write_ref_field_pre<decorators>(addr); Raw::oop_store(addr, new_value); } #endif // SHARE_VM_GC_G1_G1BARRIERSET_INLINE_HPP
< prev index next >