< prev index next >
src/share/vm/oops/objArrayKlass.cpp
Print this page
rev 8961 : [mq]: diff-shenandoah.patch
*** 296,305 ****
--- 296,309 ----
// 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()->resolve_oop(s));
+ d = arrayOop(oopDesc::bs()->resolve_and_maybe_copy_oop(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 >