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