< 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 >