mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8000263: JSR 292: signature types may appear to be unloaded
Reviewed-by: kvn, jrose
This commit is contained in:
parent
b1d745897b
commit
7162ad011c
11 changed files with 136 additions and 171 deletions
|
@ -973,9 +973,12 @@ Klass* SystemDictionary::find_well_known_klass(Symbol* class_name) {
|
|||
if (sid != vmSymbols::NO_SID) {
|
||||
Klass* k = NULL;
|
||||
switch (sid) {
|
||||
#define WK_KLASS_CASE(name, symbol, ignore_option) \
|
||||
#define WK_KLASS_CASE(name, symbol, option) \
|
||||
case vmSymbols::VM_SYMBOL_ENUM_NAME(symbol): \
|
||||
k = WK_KLASS(name); break;
|
||||
if (option == Pre_Link) { \
|
||||
k = WK_KLASS(name); \
|
||||
} \
|
||||
break;
|
||||
WK_KLASSES_DO(WK_KLASS_CASE)
|
||||
#undef WK_KLASS_CASE
|
||||
}
|
||||
|
@ -1955,6 +1958,16 @@ void SystemDictionary::initialize_wk_klasses_until(WKID limit_id, WKID &start_id
|
|||
start_id = limit_id;
|
||||
}
|
||||
|
||||
#ifdef ASSERT
|
||||
void SystemDictionary::check_wk_pre_link_klasses() {
|
||||
#define WK_KLASS_CHECK(name, symbol, option) \
|
||||
if (option == Pre_Link) { \
|
||||
assert(name()->is_public(), ""); \
|
||||
}
|
||||
WK_KLASSES_DO(WK_KLASS_CHECK);
|
||||
#undef WK_KLASS_CHECK
|
||||
}
|
||||
#endif
|
||||
|
||||
void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
||||
assert(WK_KLASS(Object_klass) == NULL, "preloaded classes should only be initialized once");
|
||||
|
@ -2010,6 +2023,8 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
|||
|
||||
initialize_wk_klasses_until(WKID_LIMIT, scan, CHECK);
|
||||
|
||||
check_wk_pre_link_klasses();
|
||||
|
||||
_box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass);
|
||||
_box_klasses[T_CHAR] = WK_KLASS(Character_klass);
|
||||
_box_klasses[T_FLOAT] = WK_KLASS(Float_klass);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue