hotspot/src/share/vm/oops/oop.inline.hpp
changeset 41310 28c707fe71ce
parent 41177 3869072fc2e1
child 46415 7d5a286cdf89
equal deleted inserted replaced
41309:88c1272e94d3 41310:28c707fe71ce
   107     return _metadata._klass;
   107     return _metadata._klass;
   108   }
   108   }
   109 }
   109 }
   110 
   110 
   111 Klass* oopDesc::klass_or_null() const volatile {
   111 Klass* oopDesc::klass_or_null() const volatile {
   112   // can be NULL in CMS
       
   113   if (UseCompressedClassPointers) {
   112   if (UseCompressedClassPointers) {
   114     return Klass::decode_klass(_metadata._compressed_klass);
   113     return Klass::decode_klass(_metadata._compressed_klass);
   115   } else {
   114   } else {
   116     return _metadata._klass;
   115     return _metadata._klass;
       
   116   }
       
   117 }
       
   118 
       
   119 Klass* oopDesc::klass_or_null_acquire() const volatile {
       
   120   if (UseCompressedClassPointers) {
       
   121     // Workaround for non-const load_acquire parameter.
       
   122     const volatile narrowKlass* addr = &_metadata._compressed_klass;
       
   123     volatile narrowKlass* xaddr = const_cast<volatile narrowKlass*>(addr);
       
   124     return Klass::decode_klass(OrderAccess::load_acquire(xaddr));
       
   125   } else {
       
   126     return (Klass*)OrderAccess::load_ptr_acquire(&_metadata._klass);
   117   }
   127   }
   118 }
   128 }
   119 
   129 
   120 Klass** oopDesc::klass_addr() {
   130 Klass** oopDesc::klass_addr() {
   121   // Only used internally and with CMS and will not work with
   131   // Only used internally and with CMS and will not work with