8271939: Clean up primitive raw accessors in oopDesc

Reviewed-by: stefank, tschatzl
This commit is contained in:
Roman Kennke 2021-08-09 10:31:31 +00:00
parent b84a9c7b37
commit a86ac0d1e3
10 changed files with 13 additions and 43 deletions

View file

@ -1022,7 +1022,7 @@ oop HeapShared::archive_reachable_objects_from(int level,
// class_data will be restored explicitly at run time. // class_data will be restored explicitly at run time.
guarantee(orig_obj == SystemDictionary::java_platform_loader() || guarantee(orig_obj == SystemDictionary::java_platform_loader() ||
orig_obj == SystemDictionary::java_system_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); java_lang_ClassLoader::release_set_loader_data(archived_obj, NULL);
} }
} }

View file

@ -1380,14 +1380,6 @@ void java_lang_Class::fixup_module_field(Klass* k, Handle module) {
java_lang_Class::set_module(k->java_mirror(), 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) { void java_lang_Class::set_oop_size(HeapWord* java_class, int size) {
assert(_oop_size_offset != 0, "must be set"); assert(_oop_size_offset != 0, "must be set");
assert(size > 0, "Oop size must be greater than zero, not %d", size); assert(size > 0, "Oop size must be greater than zero, not %d", size);
@ -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); 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) { void java_lang_Class::set_static_oop_field_count(oop java_class, int size) {
assert(_static_oop_field_count_offset != 0, "must be set"); assert(_static_oop_field_count_offset != 0, "must be set");
java_class->int_field_put(_static_oop_field_count_offset, size); java_class->int_field_put(_static_oop_field_count_offset, size);
@ -1510,16 +1497,6 @@ oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, Basic
return java_class; 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) { void java_lang_Class::set_klass(oop java_class, Klass* klass) {
assert(java_lang_Class::is_instance(java_class), "must be a Class object"); assert(java_lang_Class::is_instance(java_class), "must be a Class object");
java_class->metadata_field_put(_klass_offset, klass); java_class->metadata_field_put(_klass_offset, klass);
@ -4263,10 +4240,10 @@ ClassLoaderData* java_lang_ClassLoader::loader_data_acquire(oop loader) {
return HeapAccess<MO_ACQUIRE>::load_at(loader, _loader_data_offset); 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(loader != NULL, "loader must not be NULL");
assert(oopDesc::is_oop(loader), "loader must be oop"); 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) { void java_lang_ClassLoader::release_set_loader_data(oop loader, ClassLoaderData* new_data) {

View file

@ -322,7 +322,6 @@ class java_lang_Class : AllStatic {
// Conversion // Conversion
static Klass* as_Klass(oop java_class); 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 void set_klass(oop java_class, Klass* klass);
static BasicType as_BasicType(oop java_class, Klass** reference_klass = NULL); static BasicType as_BasicType(oop java_class, Klass** reference_klass = NULL);
static Symbol* as_signature(oop java_class, bool intern_if_not_found); static Symbol* as_signature(oop java_class, bool intern_if_not_found);
@ -368,10 +367,8 @@ class java_lang_Class : AllStatic {
static void set_source_file(oop java_class, oop source_file); static void set_source_file(oop java_class, oop source_file);
static int oop_size(oop java_class); 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 void set_oop_size(HeapWord* java_class, int size);
static int static_oop_field_count(oop java_class); 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 void set_static_oop_field_count(oop java_class, int size);
static GrowableArray<Klass*>* fixup_mirror_list() { static GrowableArray<Klass*>* fixup_mirror_list() {
@ -1354,7 +1351,7 @@ class java_lang_ClassLoader : AllStatic {
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
static ClassLoaderData* loader_data_acquire(oop loader); 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 void release_set_loader_data(oop loader, ClassLoaderData* new_data);
static oop parent(oop loader); static oop parent(oop loader);

View file

@ -261,9 +261,9 @@ inline bool java_lang_Class::is_primitive(oop java_class) {
return is_primitive; 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"); 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); assert(size > 0, "Oop size must be greater than zero, not %d", size);
return size; return size;
} }

View file

@ -40,7 +40,7 @@ inline void InstanceClassLoaderKlass::oop_oop_iterate(oop obj, OopClosureType* c
InstanceKlass::oop_oop_iterate<T>(obj, closure); InstanceKlass::oop_oop_iterate<T>(obj, closure);
if (Devirtualizer::do_metadata(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. // cld can be null if we have a non-registered class loader.
if (cld != NULL) { if (cld != NULL) {
Devirtualizer::do_cld(closure, cld); Devirtualizer::do_cld(closure, cld);
@ -62,7 +62,7 @@ inline void InstanceClassLoaderKlass::oop_oop_iterate_bounded(oop obj, OopClosur
if (Devirtualizer::do_metadata(closure)) { if (Devirtualizer::do_metadata(closure)) {
if (mr.contains(obj)) { 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. // cld can be null if we have a non-registered class loader.
if (cld != NULL) { if (cld != NULL) {
Devirtualizer::do_cld(closure, cld); Devirtualizer::do_cld(closure, cld);

View file

@ -56,7 +56,7 @@ instanceOop InstanceMirrorKlass::allocate_instance(Klass* k, TRAPS) {
} }
int InstanceMirrorKlass::oop_size(oop obj) const { 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) { int InstanceMirrorKlass::compute_static_oop_field_count(oop obj) {

View file

@ -38,7 +38,7 @@
template <typename T, class OopClosureType> template <typename T, class OopClosureType>
void InstanceMirrorKlass::oop_oop_iterate_statics(oop obj, OopClosureType* closure) { void InstanceMirrorKlass::oop_oop_iterate_statics(oop obj, OopClosureType* closure) {
T* p = (T*)start_of_static_fields(obj); 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) { for (; p < end; ++p) {
Devirtualizer::do_oop(closure, p); Devirtualizer::do_oop(closure, p);
@ -50,7 +50,7 @@ void InstanceMirrorKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
InstanceKlass::oop_oop_iterate<T>(obj, closure); InstanceKlass::oop_oop_iterate<T>(obj, closure);
if (Devirtualizer::do_metadata(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. // We'll get NULL for primitive mirrors.
if (klass != NULL) { if (klass != NULL) {
if (klass->class_loader_data() == NULL) { if (klass->class_loader_data() == NULL) {
@ -97,7 +97,7 @@ void InstanceMirrorKlass::oop_oop_iterate_statics_bounded(oop obj,
OopClosureType* closure, OopClosureType* closure,
MemRegion mr) { MemRegion mr) {
T* p = (T*)start_of_static_fields(obj); 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 l = (T*)mr.start();
T* const h = (T*)mr.end(); T* const h = (T*)mr.end();
@ -123,7 +123,7 @@ void InstanceMirrorKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closu
if (Devirtualizer::do_metadata(closure)) { if (Devirtualizer::do_metadata(closure)) {
if (mr.contains(obj)) { 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. // We'll get NULL for primitive mirrors.
if (klass != NULL) { if (klass != NULL) {
Devirtualizer::do_klass(closure, klass); Devirtualizer::do_klass(closure, klass);

View file

@ -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); } 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(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); } 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); } Metadata* oopDesc::metadata_field_acquire(int offset) const { return HeapAccess<MO_ACQUIRE>::load_at(as_oop(), offset); }

View file

@ -147,7 +147,6 @@ class oopDesc {
void obj_field_put_volatile(int offset, oop value); void obj_field_put_volatile(int offset, oop value);
Metadata* metadata_field(int offset) const; Metadata* metadata_field(int offset) const;
Metadata* metadata_field_raw(int offset) const;
void metadata_field_put(int offset, Metadata* value); void metadata_field_put(int offset, Metadata* value);
Metadata* metadata_field_acquire(int offset) const; Metadata* metadata_field_acquire(int offset) const;
@ -165,7 +164,6 @@ class oopDesc {
void bool_field_put_volatile(int offset, jboolean contents); void bool_field_put_volatile(int offset, jboolean contents);
jint int_field(int offset) const; jint int_field(int offset) const;
jint int_field_raw(int offset) const;
void int_field_put(int offset, jint contents); void int_field_put(int offset, jint contents);
jshort short_field(int offset) const; jshort short_field(int offset) const;

View file

@ -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 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(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 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); } inline jlong oopDesc::long_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }