Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8271939: Clean up primitive raw accessors in oopDesc #5017

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/hotspot/share/cds/heapShared.cpp
Expand Up @@ -1022,7 +1022,7 @@ oop HeapShared::archive_reachable_objects_from(int level,
// class_data will be restored explicitly at run time.
guarantee(orig_obj == SystemDictionary::java_platform_loader() ||
orig_obj == SystemDictionary::java_system_loader() ||
java_lang_ClassLoader::loader_data_raw(orig_obj) == NULL, "must be");
java_lang_ClassLoader::loader_data(orig_obj) == NULL, "must be");
java_lang_ClassLoader::release_set_loader_data(archived_obj, NULL);
}
}
Expand Down
27 changes: 2 additions & 25 deletions src/hotspot/share/classfile/javaClasses.cpp
Expand Up @@ -1380,14 +1380,6 @@ void java_lang_Class::fixup_module_field(Klass* k, Handle module) {
java_lang_Class::set_module(k->java_mirror(), module());
}

int java_lang_Class::oop_size(oop java_class) {
assert(_oop_size_offset != 0, "must be set");
int size = java_class->int_field(_oop_size_offset);
assert(size > 0, "Oop size must be greater than zero, not %d", size);
return size;
}


void java_lang_Class::set_oop_size(HeapWord* java_class, int size) {
assert(_oop_size_offset != 0, "must be set");
assert(size > 0, "Oop size must be greater than zero, not %d", size);
Expand All @@ -1399,11 +1391,6 @@ int java_lang_Class::static_oop_field_count(oop java_class) {
return java_class->int_field(_static_oop_field_count_offset);
}

int java_lang_Class::static_oop_field_count_raw(oop java_class) {
assert(_static_oop_field_count_offset != 0, "must be set");
return java_class->int_field_raw(_static_oop_field_count_offset);
}

void java_lang_Class::set_static_oop_field_count(oop java_class, int size) {
assert(_static_oop_field_count_offset != 0, "must be set");
java_class->int_field_put(_static_oop_field_count_offset, size);
Expand Down Expand Up @@ -1510,16 +1497,6 @@ oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, Basic
return java_class;
}


Klass* java_lang_Class::as_Klass_raw(oop java_class) {
//%note memory_2
assert(java_lang_Class::is_instance(java_class), "must be a Class object");
Klass* k = ((Klass*)java_class->metadata_field_raw(_klass_offset));
assert(k == NULL || k->is_klass(), "type check");
return k;
}


void java_lang_Class::set_klass(oop java_class, Klass* klass) {
assert(java_lang_Class::is_instance(java_class), "must be a Class object");
java_class->metadata_field_put(_klass_offset, klass);
Expand Down Expand Up @@ -4263,10 +4240,10 @@ ClassLoaderData* java_lang_ClassLoader::loader_data_acquire(oop loader) {
return HeapAccess<MO_ACQUIRE>::load_at(loader, _loader_data_offset);
}

ClassLoaderData* java_lang_ClassLoader::loader_data_raw(oop loader) {
ClassLoaderData* java_lang_ClassLoader::loader_data(oop loader) {
assert(loader != NULL, "loader must not be NULL");
assert(oopDesc::is_oop(loader), "loader must be oop");
return RawAccess<>::load_at(loader, _loader_data_offset);
return HeapAccess<>::load_at(loader, _loader_data_offset);
}

void java_lang_ClassLoader::release_set_loader_data(oop loader, ClassLoaderData* new_data) {
Expand Down
5 changes: 1 addition & 4 deletions src/hotspot/share/classfile/javaClasses.hpp
Expand Up @@ -322,7 +322,6 @@ class java_lang_Class : AllStatic {

// Conversion
static Klass* as_Klass(oop java_class);
static Klass* as_Klass_raw(oop java_class);
static void set_klass(oop java_class, Klass* klass);
static BasicType as_BasicType(oop java_class, Klass** reference_klass = NULL);
static Symbol* as_signature(oop java_class, bool intern_if_not_found);
Expand Down Expand Up @@ -368,10 +367,8 @@ class java_lang_Class : AllStatic {
static void set_source_file(oop java_class, oop source_file);

static int oop_size(oop java_class);
static int oop_size_raw(oop java_class);
static void set_oop_size(HeapWord* java_class, int size);
static int static_oop_field_count(oop java_class);
static int static_oop_field_count_raw(oop java_class);
static void set_static_oop_field_count(oop java_class, int size);

static GrowableArray<Klass*>* fixup_mirror_list() {
Expand Down Expand Up @@ -1354,7 +1351,7 @@ class java_lang_ClassLoader : AllStatic {
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;

static ClassLoaderData* loader_data_acquire(oop loader);
static ClassLoaderData* loader_data_raw(oop loader);
static ClassLoaderData* loader_data(oop loader);
static void release_set_loader_data(oop loader, ClassLoaderData* new_data);

static oop parent(oop loader);
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/share/classfile/javaClasses.inline.hpp
Expand Up @@ -261,9 +261,9 @@ inline bool java_lang_Class::is_primitive(oop java_class) {
return is_primitive;
}

inline int java_lang_Class::oop_size_raw(oop java_class) {
inline int java_lang_Class::oop_size(oop java_class) {
assert(_oop_size_offset != 0, "must be set");
int size = java_class->int_field_raw(_oop_size_offset);
int size = java_class->int_field(_oop_size_offset);
assert(size > 0, "Oop size must be greater than zero, not %d", size);
return size;
}
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/share/oops/instanceClassLoaderKlass.inline.hpp
Expand Up @@ -40,7 +40,7 @@ inline void InstanceClassLoaderKlass::oop_oop_iterate(oop obj, OopClosureType* c
InstanceKlass::oop_oop_iterate<T>(obj, closure);

if (Devirtualizer::do_metadata(closure)) {
ClassLoaderData* cld = java_lang_ClassLoader::loader_data_raw(obj);
ClassLoaderData* cld = java_lang_ClassLoader::loader_data(obj);
// cld can be null if we have a non-registered class loader.
if (cld != NULL) {
Devirtualizer::do_cld(closure, cld);
Expand All @@ -62,7 +62,7 @@ inline void InstanceClassLoaderKlass::oop_oop_iterate_bounded(oop obj, OopClosur

if (Devirtualizer::do_metadata(closure)) {
if (mr.contains(obj)) {
ClassLoaderData* cld = java_lang_ClassLoader::loader_data_raw(obj);
ClassLoaderData* cld = java_lang_ClassLoader::loader_data(obj);
// cld can be null if we have a non-registered class loader.
if (cld != NULL) {
Devirtualizer::do_cld(closure, cld);
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/share/oops/instanceMirrorKlass.cpp
Expand Up @@ -56,7 +56,7 @@ instanceOop InstanceMirrorKlass::allocate_instance(Klass* k, TRAPS) {
}

int InstanceMirrorKlass::oop_size(oop obj) const {
return java_lang_Class::oop_size_raw(obj);
return java_lang_Class::oop_size(obj);
}

int InstanceMirrorKlass::compute_static_oop_field_count(oop obj) {
Expand Down
8 changes: 4 additions & 4 deletions src/hotspot/share/oops/instanceMirrorKlass.inline.hpp
Expand Up @@ -38,7 +38,7 @@
template <typename T, class OopClosureType>
void InstanceMirrorKlass::oop_oop_iterate_statics(oop obj, OopClosureType* closure) {
T* p = (T*)start_of_static_fields(obj);
T* const end = p + java_lang_Class::static_oop_field_count_raw(obj);
T* const end = p + java_lang_Class::static_oop_field_count(obj);

for (; p < end; ++p) {
Devirtualizer::do_oop(closure, p);
Expand All @@ -50,7 +50,7 @@ void InstanceMirrorKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
InstanceKlass::oop_oop_iterate<T>(obj, closure);

if (Devirtualizer::do_metadata(closure)) {
Klass* klass = java_lang_Class::as_Klass_raw(obj);
Klass* klass = java_lang_Class::as_Klass(obj);
// We'll get NULL for primitive mirrors.
if (klass != NULL) {
if (klass->class_loader_data() == NULL) {
Expand Down Expand Up @@ -97,7 +97,7 @@ void InstanceMirrorKlass::oop_oop_iterate_statics_bounded(oop obj,
OopClosureType* closure,
MemRegion mr) {
T* p = (T*)start_of_static_fields(obj);
T* end = p + java_lang_Class::static_oop_field_count_raw(obj);
T* end = p + java_lang_Class::static_oop_field_count(obj);

T* const l = (T*)mr.start();
T* const h = (T*)mr.end();
Expand All @@ -123,7 +123,7 @@ void InstanceMirrorKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closu

if (Devirtualizer::do_metadata(closure)) {
if (mr.contains(obj)) {
Klass* klass = java_lang_Class::as_Klass_raw(obj);
Klass* klass = java_lang_Class::as_Klass(obj);
// We'll get NULL for primitive mirrors.
if (klass != NULL) {
Devirtualizer::do_klass(closure, klass);
Expand Down
1 change: 0 additions & 1 deletion src/hotspot/share/oops/oop.cpp
Expand Up @@ -186,7 +186,6 @@ void oopDesc::address_field_put(int offset, address value) { HeapAcce
void oopDesc::release_address_field_put(int offset, address value) { HeapAccess<MO_RELEASE>::store_at(as_oop(), offset, value); }

Metadata* oopDesc::metadata_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
Metadata* oopDesc::metadata_field_raw(int offset) const { return RawAccess<>::load_at(as_oop(), offset); }
void oopDesc::metadata_field_put(int offset, Metadata* value) { HeapAccess<>::store_at(as_oop(), offset, value); }

Metadata* oopDesc::metadata_field_acquire(int offset) const { return HeapAccess<MO_ACQUIRE>::load_at(as_oop(), offset); }
Expand Down
2 changes: 0 additions & 2 deletions src/hotspot/share/oops/oop.hpp
Expand Up @@ -147,7 +147,6 @@ class oopDesc {
void obj_field_put_volatile(int offset, oop value);

Metadata* metadata_field(int offset) const;
Metadata* metadata_field_raw(int offset) const;
void metadata_field_put(int offset, Metadata* value);

Metadata* metadata_field_acquire(int offset) const;
Expand All @@ -165,7 +164,6 @@ class oopDesc {
void bool_field_put_volatile(int offset, jboolean contents);

jint int_field(int offset) const;
jint int_field_raw(int offset) const;
void int_field_put(int offset, jint contents);

jshort short_field(int offset) const;
Expand Down
1 change: 0 additions & 1 deletion src/hotspot/share/oops/oop.inline.hpp
Expand Up @@ -239,7 +239,6 @@ inline jshort oopDesc::short_field(int offset) const { return Hea
inline void oopDesc::short_field_put(int offset, jshort value) { HeapAccess<>::store_at(as_oop(), offset, value); }

inline jint oopDesc::int_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
inline jint oopDesc::int_field_raw(int offset) const { return RawAccess<>::load_at(as_oop(), offset); }
inline void oopDesc::int_field_put(int offset, jint value) { HeapAccess<>::store_at(as_oop(), offset, value); }

inline jlong oopDesc::long_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
Expand Down