< prev index next >

src/hotspot/share/oops/instanceKlass.cpp

Print this page

        

*** 50,59 **** --- 50,60 ---- #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" #include "memory/metaspaceShared.hpp" #include "memory/oopFactory.hpp" #include "memory/resourceArea.hpp" + #include "oops/access.inline.hpp" #include "oops/fieldStreams.hpp" #include "oops/instanceClassLoaderKlass.hpp" #include "oops/instanceKlass.inline.hpp" #include "oops/instanceMirrorKlass.hpp" #include "oops/instanceOop.hpp"
*** 2255,2267 **** } } address InstanceKlass::static_field_addr(int offset) { assert(offset >= InstanceMirrorKlass::offset_of_static_fields(), "has already been adjusted"); ! return (address)(offset + cast_from_oop<intptr_t>(java_mirror())); } const char* InstanceKlass::signature_name() const { int hash_len = 0; char hash_buf[40]; --- 2256,2273 ---- } } address InstanceKlass::static_field_addr(int offset) { assert(offset >= InstanceMirrorKlass::offset_of_static_fields(), "has already been adjusted"); ! oop mirror = Access<>::resolve(java_mirror()); ! return (address)(offset + cast_from_oop<intptr_t>(mirror)); } + oop InstanceKlass::static_oop_field(int offset) { + assert(offset >= InstanceMirrorKlass::offset_of_static_fields(), "has already been adjusted"); + return HeapAccess<>::oop_load((HeapWord*)static_field_addr(offset)); + } const char* InstanceKlass::signature_name() const { int hash_len = 0; char hash_buf[40];
< prev index next >