diff -r 3875d7b926a8 -r bf2ff45e592f src/hotspot/share/oops/access.inline.hpp --- a/src/hotspot/share/oops/access.inline.hpp Wed Mar 14 00:30:56 2018 +0900 +++ b/src/hotspot/share/oops/access.inline.hpp Tue Mar 13 17:13:35 2018 +0100 @@ -139,7 +139,8 @@ struct PostRuntimeDispatch: public AllStatic { template static bool access_barrier(arrayOop src_obj, arrayOop dst_obj, T* src, T* dst, size_t length) { - return GCBarrierType::arraycopy_in_heap(src_obj, dst_obj, src, dst, length); + GCBarrierType::arraycopy_in_heap(src_obj, dst_obj, src, dst, length); + return true; } template @@ -763,7 +764,7 @@ HasDecorator::value, bool>::type arraycopy(arrayOop src_obj, arrayOop dst_obj, T *src, T* dst, size_t length) { typedef RawAccessBarrier Raw; - return Raw::arraycopy(src, dst, length); + return Raw::arraycopy(src_obj, dst_obj, src, dst, length); } template @@ -1077,7 +1078,9 @@ template inline bool arraycopy(arrayOop src_obj, arrayOop dst_obj, T *src, T *dst, size_t length) { - verify_types(); + STATIC_ASSERT((HasDecorator::value || + (IsSame::value || IsIntegral::value) || + IsFloatingPoint::value)); // arraycopy allows type erased void elements typedef typename Decay::type DecayedT; const DecoratorSet expanded_decorators = DecoratorFixup::value ?