mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8203382: Rename SystemDictionary::initialize_wk_klass to resolve_wk_klass
Reviewed-by: jiangli
This commit is contained in:
parent
39dd04b953
commit
9959e34180
3 changed files with 21 additions and 21 deletions
|
@ -1908,7 +1908,7 @@ void SystemDictionary::initialize(TRAPS) {
|
||||||
// Allocate private object used as system class loader lock
|
// Allocate private object used as system class loader lock
|
||||||
_system_loader_lock_obj = oopFactory::new_intArray(0, CHECK);
|
_system_loader_lock_obj = oopFactory::new_intArray(0, CHECK);
|
||||||
// Initialize basic classes
|
// Initialize basic classes
|
||||||
initialize_preloaded_classes(CHECK);
|
resolve_preloaded_classes(CHECK);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compact table of directions on the initialization of klasses:
|
// Compact table of directions on the initialization of klasses:
|
||||||
|
@ -1922,7 +1922,7 @@ static const short wk_init_info[] = {
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
bool SystemDictionary::initialize_wk_klass(WKID id, int init_opt, TRAPS) {
|
bool SystemDictionary::resolve_wk_klass(WKID id, int init_opt, TRAPS) {
|
||||||
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
|
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
|
||||||
int info = wk_init_info[id - FIRST_WKID];
|
int info = wk_init_info[id - FIRST_WKID];
|
||||||
int sid = (info >> CEIL_LG_OPTION_LIMIT);
|
int sid = (info >> CEIL_LG_OPTION_LIMIT);
|
||||||
|
@ -1952,7 +1952,7 @@ bool SystemDictionary::initialize_wk_klass(WKID id, int init_opt, TRAPS) {
|
||||||
return ((*klassp) != NULL);
|
return ((*klassp) != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SystemDictionary::initialize_wk_klasses_until(WKID limit_id, WKID &start_id, TRAPS) {
|
void SystemDictionary::resolve_wk_klasses_until(WKID limit_id, WKID &start_id, TRAPS) {
|
||||||
assert((int)start_id <= (int)limit_id, "IDs are out of order!");
|
assert((int)start_id <= (int)limit_id, "IDs are out of order!");
|
||||||
for (int id = (int)start_id; id < (int)limit_id; id++) {
|
for (int id = (int)start_id; id < (int)limit_id; id++) {
|
||||||
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
|
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
|
||||||
|
@ -1960,14 +1960,14 @@ void SystemDictionary::initialize_wk_klasses_until(WKID limit_id, WKID &start_id
|
||||||
int sid = (info >> CEIL_LG_OPTION_LIMIT);
|
int sid = (info >> CEIL_LG_OPTION_LIMIT);
|
||||||
int opt = (info & right_n_bits(CEIL_LG_OPTION_LIMIT));
|
int opt = (info & right_n_bits(CEIL_LG_OPTION_LIMIT));
|
||||||
|
|
||||||
initialize_wk_klass((WKID)id, opt, CHECK);
|
resolve_wk_klass((WKID)id, opt, CHECK);
|
||||||
}
|
}
|
||||||
|
|
||||||
// move the starting value forward to the limit:
|
// move the starting value forward to the limit:
|
||||||
start_id = limit_id;
|
start_id = limit_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
void SystemDictionary::resolve_preloaded_classes(TRAPS) {
|
||||||
assert(WK_KLASS(Object_klass) == NULL, "preloaded classes should only be initialized once");
|
assert(WK_KLASS(Object_klass) == NULL, "preloaded classes should only be initialized once");
|
||||||
|
|
||||||
// Create the ModuleEntry for java.base. This call needs to be done here,
|
// Create the ModuleEntry for java.base. This call needs to be done here,
|
||||||
|
@ -1979,14 +1979,14 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
||||||
// first do Object, then String, Class
|
// first do Object, then String, Class
|
||||||
#if INCLUDE_CDS
|
#if INCLUDE_CDS
|
||||||
if (UseSharedSpaces) {
|
if (UseSharedSpaces) {
|
||||||
initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Object_klass), scan, CHECK);
|
resolve_wk_klasses_through(WK_KLASS_ENUM_NAME(Object_klass), scan, CHECK);
|
||||||
// Initialize the constant pool for the Object_class
|
// Initialize the constant pool for the Object_class
|
||||||
Object_klass()->constants()->restore_unshareable_info(CHECK);
|
Object_klass()->constants()->restore_unshareable_info(CHECK);
|
||||||
initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK);
|
resolve_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK);
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK);
|
resolve_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate offsets for String and Class classes since they are loaded and
|
// Calculate offsets for String and Class classes since they are loaded and
|
||||||
|
@ -2003,13 +2003,13 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
||||||
Universe::fixup_mirrors(CHECK);
|
Universe::fixup_mirrors(CHECK);
|
||||||
|
|
||||||
// do a bunch more:
|
// do a bunch more:
|
||||||
initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Reference_klass), scan, CHECK);
|
resolve_wk_klasses_through(WK_KLASS_ENUM_NAME(Reference_klass), scan, CHECK);
|
||||||
|
|
||||||
// Preload ref klasses and set reference types
|
// Preload ref klasses and set reference types
|
||||||
InstanceKlass::cast(WK_KLASS(Reference_klass))->set_reference_type(REF_OTHER);
|
InstanceKlass::cast(WK_KLASS(Reference_klass))->set_reference_type(REF_OTHER);
|
||||||
InstanceRefKlass::update_nonstatic_oop_maps(WK_KLASS(Reference_klass));
|
InstanceRefKlass::update_nonstatic_oop_maps(WK_KLASS(Reference_klass));
|
||||||
|
|
||||||
initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(PhantomReference_klass), scan, CHECK);
|
resolve_wk_klasses_through(WK_KLASS_ENUM_NAME(PhantomReference_klass), scan, CHECK);
|
||||||
InstanceKlass::cast(WK_KLASS(SoftReference_klass))->set_reference_type(REF_SOFT);
|
InstanceKlass::cast(WK_KLASS(SoftReference_klass))->set_reference_type(REF_SOFT);
|
||||||
InstanceKlass::cast(WK_KLASS(WeakReference_klass))->set_reference_type(REF_WEAK);
|
InstanceKlass::cast(WK_KLASS(WeakReference_klass))->set_reference_type(REF_WEAK);
|
||||||
InstanceKlass::cast(WK_KLASS(FinalReference_klass))->set_reference_type(REF_FINAL);
|
InstanceKlass::cast(WK_KLASS(FinalReference_klass))->set_reference_type(REF_FINAL);
|
||||||
|
@ -2018,9 +2018,9 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
||||||
// JSR 292 classes
|
// JSR 292 classes
|
||||||
WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass);
|
WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass);
|
||||||
WKID jsr292_group_end = WK_KLASS_ENUM_NAME(VolatileCallSite_klass);
|
WKID jsr292_group_end = WK_KLASS_ENUM_NAME(VolatileCallSite_klass);
|
||||||
initialize_wk_klasses_until(jsr292_group_start, scan, CHECK);
|
resolve_wk_klasses_until(jsr292_group_start, scan, CHECK);
|
||||||
initialize_wk_klasses_through(jsr292_group_end, scan, CHECK);
|
resolve_wk_klasses_through(jsr292_group_end, scan, CHECK);
|
||||||
initialize_wk_klasses_until(NOT_JVMCI(WKID_LIMIT) JVMCI_ONLY(FIRST_JVMCI_WKID), scan, CHECK);
|
resolve_wk_klasses_until(NOT_JVMCI(WKID_LIMIT) JVMCI_ONLY(FIRST_JVMCI_WKID), scan, CHECK);
|
||||||
|
|
||||||
_box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass);
|
_box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass);
|
||||||
_box_klasses[T_CHAR] = WK_KLASS(Character_klass);
|
_box_klasses[T_CHAR] = WK_KLASS(Character_klass);
|
||||||
|
|
|
@ -98,7 +98,7 @@ class OopStorage;
|
||||||
// that makes some minor distinctions, like whether the klass
|
// that makes some minor distinctions, like whether the klass
|
||||||
// is preloaded, optional, release-specific, etc.
|
// is preloaded, optional, release-specific, etc.
|
||||||
// The order of these definitions is significant; it is the order in which
|
// The order of these definitions is significant; it is the order in which
|
||||||
// preloading is actually performed by initialize_preloaded_classes.
|
// preloading is actually performed by resolve_preloaded_classes.
|
||||||
|
|
||||||
#define WK_KLASSES_DO(do_klass) \
|
#define WK_KLASSES_DO(do_klass) \
|
||||||
/* well-known classes */ \
|
/* well-known classes */ \
|
||||||
|
@ -417,11 +417,11 @@ public:
|
||||||
|
|
||||||
JVMCI_ONLY(static InstanceKlass* check_klass_Jvmci(InstanceKlass* k) { return k; })
|
JVMCI_ONLY(static InstanceKlass* check_klass_Jvmci(InstanceKlass* k) { return k; })
|
||||||
|
|
||||||
static bool initialize_wk_klass(WKID id, int init_opt, TRAPS);
|
static bool resolve_wk_klass(WKID id, int init_opt, TRAPS);
|
||||||
static void initialize_wk_klasses_until(WKID limit_id, WKID &start_id, TRAPS);
|
static void resolve_wk_klasses_until(WKID limit_id, WKID &start_id, TRAPS);
|
||||||
static void initialize_wk_klasses_through(WKID end_id, WKID &start_id, TRAPS) {
|
static void resolve_wk_klasses_through(WKID end_id, WKID &start_id, TRAPS) {
|
||||||
int limit = (int)end_id + 1;
|
int limit = (int)end_id + 1;
|
||||||
initialize_wk_klasses_until((WKID) limit, start_id, THREAD);
|
resolve_wk_klasses_until((WKID) limit, start_id, THREAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -708,8 +708,8 @@ protected:
|
||||||
ClassLoaderData* loader_data,
|
ClassLoaderData* loader_data,
|
||||||
TRAPS);
|
TRAPS);
|
||||||
|
|
||||||
// Initialization
|
// Resolve preloaded classes so they can be used like SystemDictionary::String_klass()
|
||||||
static void initialize_preloaded_classes(TRAPS);
|
static void resolve_preloaded_classes(TRAPS);
|
||||||
|
|
||||||
// Class loader constraints
|
// Class loader constraints
|
||||||
static void check_constraints(unsigned int hash,
|
static void check_constraints(unsigned int hash,
|
||||||
|
|
|
@ -715,7 +715,7 @@ void JVMCIRuntime::initialize_well_known_classes(TRAPS) {
|
||||||
if (JVMCIRuntime::_well_known_classes_initialized == false) {
|
if (JVMCIRuntime::_well_known_classes_initialized == false) {
|
||||||
guarantee(can_initialize_JVMCI(), "VM is not yet sufficiently booted to initialize JVMCI");
|
guarantee(can_initialize_JVMCI(), "VM is not yet sufficiently booted to initialize JVMCI");
|
||||||
SystemDictionary::WKID scan = SystemDictionary::FIRST_JVMCI_WKID;
|
SystemDictionary::WKID scan = SystemDictionary::FIRST_JVMCI_WKID;
|
||||||
SystemDictionary::initialize_wk_klasses_through(SystemDictionary::LAST_JVMCI_WKID, scan, CHECK);
|
SystemDictionary::resolve_wk_klasses_through(SystemDictionary::LAST_JVMCI_WKID, scan, CHECK);
|
||||||
JVMCIJavaClasses::compute_offsets(CHECK);
|
JVMCIJavaClasses::compute_offsets(CHECK);
|
||||||
JVMCIRuntime::_well_known_classes_initialized = true;
|
JVMCIRuntime::_well_known_classes_initialized = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue