src/hotspot/share/gc/shared/modRefBarrierSet.inline.hpp
changeset 48966 e6eb66d2e765
parent 47998 fb0275c320a0
child 49347 edb65305d3ac
equal deleted inserted replaced
48965:be873d8c0114 48966:e6eb66d2e765
     1 /*
     1 /*
     2  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    71   BarrierSetT *bs = barrier_set_cast<BarrierSetT>(barrier_set());
    71   BarrierSetT *bs = barrier_set_cast<BarrierSetT>(barrier_set());
    72 
    72 
    73   if (!HasDecorator<decorators, ARRAYCOPY_CHECKCAST>::value) {
    73   if (!HasDecorator<decorators, ARRAYCOPY_CHECKCAST>::value) {
    74     // Optimized covariant case
    74     // Optimized covariant case
    75     bs->write_ref_array_pre(dst, (int)length,
    75     bs->write_ref_array_pre(dst, (int)length,
    76                             HasDecorator<decorators, ARRAYCOPY_DEST_NOT_INITIALIZED>::value);
    76                             HasDecorator<decorators, AS_DEST_NOT_INITIALIZED>::value);
    77     Raw::oop_arraycopy(src_obj, dst_obj, src, dst, length);
    77     Raw::oop_arraycopy(src_obj, dst_obj, src, dst, length);
    78     bs->write_ref_array((HeapWord*)dst, length);
    78     bs->write_ref_array((HeapWord*)dst, length);
    79   } else {
    79   } else {
    80     Klass* bound = objArrayOop(dst_obj)->element_klass();
    80     Klass* bound = objArrayOop(dst_obj)->element_klass();
    81     T* from = src;
    81     T* from = src;