< prev index next >
src/share/vm/oops/objArrayKlass.cpp
Print this page
@@ -296,10 +296,14 @@
// This is correct, since the position is supposed to be an 'in between point', i.e., s.length(),
// points to the right of the last element.
if (length==0) {
return;
}
+
+ s = arrayOop(oopDesc::bs()->read_barrier(s));
+ d = arrayOop(oopDesc::bs()->write_barrier(d));
+
if (UseCompressedOops) {
narrowOop* const src = objArrayOop(s)->obj_at_addr<narrowOop>(src_pos);
narrowOop* const dst = objArrayOop(d)->obj_at_addr<narrowOop>(dst_pos);
do_copy<narrowOop>(s, src, d, dst, length, CHECK);
} else {
< prev index next >