< 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 >