< prev index next >

src/hotspot/share/oops/objArrayOop.cpp

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "oops/access.inline.hpp"
  27 #include "oops/objArrayKlass.hpp"
  28 #include "oops/objArrayOop.inline.hpp"
  29 #include "oops/oop.inline.hpp"
  30 
  31 oop objArrayOopDesc::atomic_compare_exchange_oop(int index, oop exchange_value,
  32                                                  oop compare_value) {
  33   ptrdiff_t offs;
  34   if (UseCompressedOops) {
  35     offs = objArrayOopDesc::obj_at_offset<narrowOop>(index);
  36   } else {
  37     offs = objArrayOopDesc::obj_at_offset<oop>(index);
  38   }
  39   return HeapAccess<IS_ARRAY>::oop_atomic_cmpxchg_at(exchange_value, as_oop(), offs, compare_value);
  40 }
  41 
  42 Klass* objArrayOopDesc::element_klass() {
  43   return ObjArrayKlass::cast(klass())->element_klass();
  44 }


  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "oops/access.inline.hpp"
  27 #include "oops/objArrayKlass.hpp"
  28 #include "oops/objArrayOop.inline.hpp"
  29 #include "oops/oop.inline.hpp"
  30 
  31 oop objArrayOopDesc::atomic_compare_exchange_oop(int index, oop exchange_value,
  32                                                  oop compare_value) {
  33   ptrdiff_t offs;
  34   if (UseCompressedOops) {
  35     offs = objArrayOopDesc::obj_at_offset<narrowOop>(index);
  36   } else {
  37     offs = objArrayOopDesc::obj_at_offset<oop>(index);
  38   }
  39   return HeapAccess<IS_ARRAY>::oop_atomic_cmpxchg_at(as_oop(), offs, compare_value, exchange_value);
  40 }
  41 
  42 Klass* objArrayOopDesc::element_klass() {
  43   return ObjArrayKlass::cast(klass())->element_klass();
  44 }
< prev index next >