--- old/src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp 2018-09-28 11:01:44.403163050 +0200 +++ new/src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp 2018-09-28 11:01:35.172140943 +0200 @@ -186,6 +186,7 @@ } } -bool CardTableBarrierSetC2::array_copy_requires_gc_barriers(BasicType type) const { - return !use_ReduceInitialCardMarks(); +bool CardTableBarrierSetC2::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; + return is_oop && (!tightly_coupled_alloc || !use_ReduceInitialCardMarks()); }