< prev index next >

src/share/vm/oops/objArrayOop.inline.hpp

Print this page
rev 8961 : [mq]: diff-shenandoah.patch

@@ -28,15 +28,16 @@
 #include "oops/objArrayOop.hpp"
 #include "oops/oop.inline.hpp"
 #include "runtime/globals.hpp"
 
 inline oop objArrayOopDesc::obj_at(int index) const {
+  objArrayOop p = (objArrayOop) oopDesc::bs()->resolve_oop((oop) this);
   // With UseCompressedOops decode the narrow oop in the objArray to an
   // uncompressed oop.  Otherwise this is simply a "*" operator.
   if (UseCompressedOops) {
-    return load_decode_heap_oop(obj_at_addr<narrowOop>(index));
+    return load_decode_heap_oop(p->obj_at_addr<narrowOop>(index));
   } else {
-    return load_decode_heap_oop(obj_at_addr<oop>(index));
+    return load_decode_heap_oop(p->obj_at_addr<oop>(index));
   }
 }
 
 #endif // SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
< prev index next >