diff --git a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp index adf349d3b24c..cb5ebb161dd8 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp @@ -99,12 +99,14 @@ bool ShenandoahBarrierSet::need_keep_alive_barrier(DecoratorSet decorators,Basic } ShenandoahBarrierSet::AccessKind ShenandoahBarrierSet::access_kind(DecoratorSet decorators, BasicType type) { - if ((decorators & IN_NATIVE) != 0) { - return AccessKind::NATIVE; - } else if ((decorators & (ON_WEAK_OOP_REF | ON_PHANTOM_OOP_REF | ON_UNKNOWN_OOP_REF)) != 0) { - return AccessKind::WEAK; - } else { + if ((decorators & ON_STRONG_OOP_REF) != 0) { return AccessKind::NORMAL; + } else { + if ((decorators & IN_NATIVE) != 0) { + return AccessKind::NATIVE; + } else { + return AccessKind::WEAK; + } } }