src/share/vm/classfile/systemDictionary.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
8000263 Cdiff src/share/vm/classfile/systemDictionary.cpp
src/share/vm/classfile/systemDictionary.cpp
Print this page
*** 971,983 ****
NOT_PRODUCT(find_wkk_probes++);
vmSymbols::SID sid = vmSymbols::find_sid(class_name);
if (sid != vmSymbols::NO_SID) {
Klass* k = NULL;
switch (sid) {
! #define WK_KLASS_CASE(name, symbol, ignore_option) \
case vmSymbols::VM_SYMBOL_ENUM_NAME(symbol): \
! k = WK_KLASS(name); break;
WK_KLASSES_DO(WK_KLASS_CASE)
#undef WK_KLASS_CASE
}
NOT_PRODUCT(if (k != NULL) find_wkk_wins++);
return k;
--- 971,986 ----
NOT_PRODUCT(find_wkk_probes++);
vmSymbols::SID sid = vmSymbols::find_sid(class_name);
if (sid != vmSymbols::NO_SID) {
Klass* k = NULL;
switch (sid) {
! #define WK_KLASS_CASE(name, symbol, option) \
case vmSymbols::VM_SYMBOL_ENUM_NAME(symbol): \
! if (option == Pre_Link) { \
! k = WK_KLASS(name); \
! } \
! break;
WK_KLASSES_DO(WK_KLASS_CASE)
#undef WK_KLASS_CASE
}
NOT_PRODUCT(if (k != NULL) find_wkk_wins++);
return k;
*** 1953,1962 ****
--- 1956,1975 ----
// move the starting value forward to the limit:
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");
// Preload commonly used klasses
WKID scan = FIRST_WKID;
*** 2008,2017 ****
--- 2021,2032 ----
scan = WKID(jsr292_group_end + 1);
}
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);
_box_klasses[T_DOUBLE] = WK_KLASS(Double_klass);
_box_klasses[T_BYTE] = WK_KLASS(Byte_klass);
src/share/vm/classfile/systemDictionary.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File