971 NOT_PRODUCT(find_wkk_probes++); |
971 NOT_PRODUCT(find_wkk_probes++); |
972 vmSymbols::SID sid = vmSymbols::find_sid(class_name); |
972 vmSymbols::SID sid = vmSymbols::find_sid(class_name); |
973 if (sid != vmSymbols::NO_SID) { |
973 if (sid != vmSymbols::NO_SID) { |
974 Klass* k = NULL; |
974 Klass* k = NULL; |
975 switch (sid) { |
975 switch (sid) { |
976 #define WK_KLASS_CASE(name, symbol, ignore_option) \ |
976 #define WK_KLASS_CASE(name, symbol, option) \ |
977 case vmSymbols::VM_SYMBOL_ENUM_NAME(symbol): \ |
977 case vmSymbols::VM_SYMBOL_ENUM_NAME(symbol): \ |
978 k = WK_KLASS(name); break; |
978 if (option == Pre_Link) { \ |
|
979 k = WK_KLASS(name); \ |
|
980 } \ |
|
981 break; |
979 WK_KLASSES_DO(WK_KLASS_CASE) |
982 WK_KLASSES_DO(WK_KLASS_CASE) |
980 #undef WK_KLASS_CASE |
983 #undef WK_KLASS_CASE |
981 } |
984 } |
982 NOT_PRODUCT(if (k != NULL) find_wkk_wins++); |
985 NOT_PRODUCT(if (k != NULL) find_wkk_wins++); |
983 return k; |
986 return k; |
1953 |
1956 |
1954 // move the starting value forward to the limit: |
1957 // move the starting value forward to the limit: |
1955 start_id = limit_id; |
1958 start_id = limit_id; |
1956 } |
1959 } |
1957 |
1960 |
|
1961 #ifdef ASSERT |
|
1962 void SystemDictionary::check_wk_pre_link_klasses() { |
|
1963 #define WK_KLASS_CHECK(name, symbol, option) \ |
|
1964 if (option == Pre_Link) { \ |
|
1965 assert(name()->is_public(), ""); \ |
|
1966 } |
|
1967 WK_KLASSES_DO(WK_KLASS_CHECK); |
|
1968 #undef WK_KLASS_CHECK |
|
1969 } |
|
1970 #endif |
1958 |
1971 |
1959 void SystemDictionary::initialize_preloaded_classes(TRAPS) { |
1972 void SystemDictionary::initialize_preloaded_classes(TRAPS) { |
1960 assert(WK_KLASS(Object_klass) == NULL, "preloaded classes should only be initialized once"); |
1973 assert(WK_KLASS(Object_klass) == NULL, "preloaded classes should only be initialized once"); |
1961 // Preload commonly used klasses |
1974 // Preload commonly used klasses |
1962 WKID scan = FIRST_WKID; |
1975 WKID scan = FIRST_WKID; |
2007 // Skip the JSR 292 classes, if not enabled. |
2020 // Skip the JSR 292 classes, if not enabled. |
2008 scan = WKID(jsr292_group_end + 1); |
2021 scan = WKID(jsr292_group_end + 1); |
2009 } |
2022 } |
2010 |
2023 |
2011 initialize_wk_klasses_until(WKID_LIMIT, scan, CHECK); |
2024 initialize_wk_klasses_until(WKID_LIMIT, scan, CHECK); |
|
2025 |
|
2026 check_wk_pre_link_klasses(); |
2012 |
2027 |
2013 _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass); |
2028 _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass); |
2014 _box_klasses[T_CHAR] = WK_KLASS(Character_klass); |
2029 _box_klasses[T_CHAR] = WK_KLASS(Character_klass); |
2015 _box_klasses[T_FLOAT] = WK_KLASS(Float_klass); |
2030 _box_klasses[T_FLOAT] = WK_KLASS(Float_klass); |
2016 _box_klasses[T_DOUBLE] = WK_KLASS(Double_klass); |
2031 _box_klasses[T_DOUBLE] = WK_KLASS(Double_klass); |