1960 ClassLoaderDataGraph::methods_do(f);
1961 // Walk method handle intrinsics
1962 invoke_method_table()->methods_do(f);
1963 }
1964
1965 // ----------------------------------------------------------------------------
1966 // Initialization
1967
1968 void SystemDictionary::initialize(TRAPS) {
1969 // Allocate arrays
1970 _placeholders = new PlaceholderTable(_placeholder_table_size);
1971 _loader_constraints = new LoaderConstraintTable(_loader_constraint_size);
1972 _resolution_errors = new ResolutionErrorTable(_resolution_error_size);
1973 _invoke_method_table = new SymbolPropertyTable(_invoke_method_size);
1974 _pd_cache_table = new ProtectionDomainCacheTable(defaultProtectionDomainCacheSize);
1975
1976 // Allocate private object used as system class loader lock
1977 oop lock_obj = oopFactory::new_intArray(0, CHECK);
1978 _system_loader_lock_obj = OopHandle(Universe::vm_global(), lock_obj);
1979
1980 // Initialize basic classes
1981 resolve_well_known_classes(CHECK);
1982 }
1983
1984 // Compact table of directions on the initialization of klasses:
1985 static const short wk_init_info[] = {
1986 #define WK_KLASS_INIT_INFO(name, symbol) \
1987 ((short)vmSymbols::VM_SYMBOL_ENUM_NAME(symbol)),
1988
1989 WK_KLASSES_DO(WK_KLASS_INIT_INFO)
1990 #undef WK_KLASS_INIT_INFO
1991 0
1992 };
1993
1994 #ifdef ASSERT
1995 bool SystemDictionary::is_well_known_klass(Symbol* class_name) {
1996 int sid;
1997 for (int i = 0; (sid = wk_init_info[i]) != 0; i++) {
1998 Symbol* symbol = vmSymbols::symbol_at((vmSymbols::SID)sid);
1999 if (class_name == symbol) {
2000 return true;
2001 }
|
1960 ClassLoaderDataGraph::methods_do(f);
1961 // Walk method handle intrinsics
1962 invoke_method_table()->methods_do(f);
1963 }
1964
1965 // ----------------------------------------------------------------------------
1966 // Initialization
1967
1968 void SystemDictionary::initialize(TRAPS) {
1969 // Allocate arrays
1970 _placeholders = new PlaceholderTable(_placeholder_table_size);
1971 _loader_constraints = new LoaderConstraintTable(_loader_constraint_size);
1972 _resolution_errors = new ResolutionErrorTable(_resolution_error_size);
1973 _invoke_method_table = new SymbolPropertyTable(_invoke_method_size);
1974 _pd_cache_table = new ProtectionDomainCacheTable(defaultProtectionDomainCacheSize);
1975
1976 // Allocate private object used as system class loader lock
1977 oop lock_obj = oopFactory::new_intArray(0, CHECK);
1978 _system_loader_lock_obj = OopHandle(Universe::vm_global(), lock_obj);
1979
1980 // Resolve basic classes
1981 resolve_well_known_classes(CHECK);
1982 // Resolve classes used by archived heap objects
1983 if (UseSharedSpaces) {
1984 HeapShared::resolve_classes(CHECK);
1985 }
1986 }
1987
1988 // Compact table of directions on the initialization of klasses:
1989 static const short wk_init_info[] = {
1990 #define WK_KLASS_INIT_INFO(name, symbol) \
1991 ((short)vmSymbols::VM_SYMBOL_ENUM_NAME(symbol)),
1992
1993 WK_KLASSES_DO(WK_KLASS_INIT_INFO)
1994 #undef WK_KLASS_INIT_INFO
1995 0
1996 };
1997
1998 #ifdef ASSERT
1999 bool SystemDictionary::is_well_known_klass(Symbol* class_name) {
2000 int sid;
2001 for (int i = 0; (sid = wk_init_info[i]) != 0; i++) {
2002 Symbol* symbol = vmSymbols::symbol_at((vmSymbols::SID)sid);
2003 if (class_name == symbol) {
2004 return true;
2005 }
|