--- old/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp 2019-09-11 09:50:50.241389985 -0400 +++ new/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp 2019-09-11 09:50:49.723982544 -0400 @@ -755,7 +755,7 @@ } bool ShenandoahBarrierSetC2::array_copy_requires_gc_barriers(bool tightly_coupled_alloc, BasicType type, bool is_clone, ArrayCopyPhase phase) const { - bool is_oop = type == T_OBJECT || type == T_ARRAY; + bool is_oop = is_reference_type(type); if (!is_oop) { return false; } @@ -789,7 +789,7 @@ } } else if (src_type->isa_aryptr()) { BasicType src_elem = src_type->klass()->as_array_klass()->element_type()->basic_type(); - if (src_elem == T_OBJECT || src_elem == T_ARRAY) { + if (is_reference_type(src_elem)) { return true; } } else {