< prev index next >

src/hotspot/share/oops/oop.cpp

Print this page
@@ -32,10 +32,11 @@
  #include "oops/access.inline.hpp"
  #include "oops/compressedOops.inline.hpp"
  #include "oops/oop.inline.hpp"
  #include "oops/verifyOopClosure.hpp"
  #include "runtime/handles.inline.hpp"
+ #include "runtime/interfaceSupport.inline.hpp"
  #include "runtime/thread.inline.hpp"
  #include "utilities/copy.hpp"
  #include "utilities/macros.hpp"
  
  void oopDesc::print_on(outputStream* st) const {

@@ -171,10 +172,15 @@
    } else {
      return *(void**)addr;
    }
  }
  
+ JRT_LEAF(Klass*, oopDesc::load_klass_runtime(oopDesc* o))
+   assert(o != NULL, "null-check");
+   return oop(o)->klass();
+ JRT_END
+ 
  oop oopDesc::obj_field_acquire(int offset) const                      { return HeapAccess<MO_ACQUIRE>::oop_load_at(as_oop(), offset); }
  
  void oopDesc::obj_field_put_raw(int offset, oop value)                { RawAccess<>::oop_store_at(as_oop(), offset, value); }
  void oopDesc::release_obj_field_put(int offset, oop value)            { HeapAccess<MO_RELEASE>::oop_store_at(as_oop(), offset, value); }
  void oopDesc::obj_field_put_volatile(int offset, oop value)           { HeapAccess<MO_SEQ_CST>::oop_store_at(as_oop(), offset, value); }
< prev index next >