1957 // Calculate offsets for String and Class classes since they are loaded and 1958 // can be used after this point. 1959 java_lang_String::compute_offsets(); 1960 java_lang_Class::compute_offsets(); 1961 1962 // Fixup mirrors for classes loaded before java.lang.Class. 1963 // These calls iterate over the objects currently in the perm gen 1964 // so calling them at this point is matters (not before when there 1965 // are fewer objects and not later after there are more objects 1966 // in the perm gen. 1967 Universe::initialize_basic_type_mirrors(CHECK); 1968 Universe::fixup_mirrors(CHECK); 1969 1970 // do a bunch more: 1971 initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Reference_klass), scan, CHECK); 1972 1973 // Preload ref klasses and set reference types 1974 InstanceKlass::cast(WK_KLASS(Reference_klass))->set_reference_type(REF_OTHER); 1975 InstanceRefKlass::update_nonstatic_oop_maps(WK_KLASS(Reference_klass)); 1976 1977 initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Cleaner_klass), scan, CHECK); 1978 InstanceKlass::cast(WK_KLASS(SoftReference_klass))->set_reference_type(REF_SOFT); 1979 InstanceKlass::cast(WK_KLASS(WeakReference_klass))->set_reference_type(REF_WEAK); 1980 InstanceKlass::cast(WK_KLASS(FinalReference_klass))->set_reference_type(REF_FINAL); 1981 InstanceKlass::cast(WK_KLASS(PhantomReference_klass))->set_reference_type(REF_PHANTOM); 1982 InstanceKlass::cast(WK_KLASS(Cleaner_klass))->set_reference_type(REF_CLEANER); 1983 1984 // JSR 292 classes 1985 WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass); 1986 WKID jsr292_group_end = WK_KLASS_ENUM_NAME(VolatileCallSite_klass); 1987 initialize_wk_klasses_until(jsr292_group_start, scan, CHECK); 1988 initialize_wk_klasses_through(jsr292_group_end, scan, CHECK); 1989 initialize_wk_klasses_until(NOT_JVMCI(WKID_LIMIT) JVMCI_ONLY(FIRST_JVMCI_WKID), scan, CHECK); 1990 1991 _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass); 1992 _box_klasses[T_CHAR] = WK_KLASS(Character_klass); 1993 _box_klasses[T_FLOAT] = WK_KLASS(Float_klass); 1994 _box_klasses[T_DOUBLE] = WK_KLASS(Double_klass); 1995 _box_klasses[T_BYTE] = WK_KLASS(Byte_klass); 1996 _box_klasses[T_SHORT] = WK_KLASS(Short_klass); 1997 _box_klasses[T_INT] = WK_KLASS(Integer_klass); 1998 _box_klasses[T_LONG] = WK_KLASS(Long_klass); 1999 //_box_klasses[T_OBJECT] = WK_KLASS(object_klass); 2000 //_box_klasses[T_ARRAY] = WK_KLASS(object_klass); 2001 2002 { // Compute whether we should use loadClass or loadClassInternal when loading classes. | 1957 // Calculate offsets for String and Class classes since they are loaded and 1958 // can be used after this point. 1959 java_lang_String::compute_offsets(); 1960 java_lang_Class::compute_offsets(); 1961 1962 // Fixup mirrors for classes loaded before java.lang.Class. 1963 // These calls iterate over the objects currently in the perm gen 1964 // so calling them at this point is matters (not before when there 1965 // are fewer objects and not later after there are more objects 1966 // in the perm gen. 1967 Universe::initialize_basic_type_mirrors(CHECK); 1968 Universe::fixup_mirrors(CHECK); 1969 1970 // do a bunch more: 1971 initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Reference_klass), scan, CHECK); 1972 1973 // Preload ref klasses and set reference types 1974 InstanceKlass::cast(WK_KLASS(Reference_klass))->set_reference_type(REF_OTHER); 1975 InstanceRefKlass::update_nonstatic_oop_maps(WK_KLASS(Reference_klass)); 1976 1977 initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(PhantomReference_klass), scan, CHECK); 1978 InstanceKlass::cast(WK_KLASS(SoftReference_klass))->set_reference_type(REF_SOFT); 1979 InstanceKlass::cast(WK_KLASS(WeakReference_klass))->set_reference_type(REF_WEAK); 1980 InstanceKlass::cast(WK_KLASS(Ephemeron_klass))->set_reference_type(REF_EPHEMERON); 1981 InstanceRefKlass::update_nonstatic_ephemeron_oop_maps(WK_KLASS(Ephemeron_klass)); 1982 InstanceKlass::cast(WK_KLASS(FinalReference_klass))->set_reference_type(REF_FINAL); 1983 InstanceKlass::cast(WK_KLASS(PhantomReference_klass))->set_reference_type(REF_PHANTOM); 1984 1985 // JSR 292 classes 1986 WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass); 1987 WKID jsr292_group_end = WK_KLASS_ENUM_NAME(VolatileCallSite_klass); 1988 initialize_wk_klasses_until(jsr292_group_start, scan, CHECK); 1989 initialize_wk_klasses_through(jsr292_group_end, scan, CHECK); 1990 initialize_wk_klasses_until(NOT_JVMCI(WKID_LIMIT) JVMCI_ONLY(FIRST_JVMCI_WKID), scan, CHECK); 1991 1992 _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass); 1993 _box_klasses[T_CHAR] = WK_KLASS(Character_klass); 1994 _box_klasses[T_FLOAT] = WK_KLASS(Float_klass); 1995 _box_klasses[T_DOUBLE] = WK_KLASS(Double_klass); 1996 _box_klasses[T_BYTE] = WK_KLASS(Byte_klass); 1997 _box_klasses[T_SHORT] = WK_KLASS(Short_klass); 1998 _box_klasses[T_INT] = WK_KLASS(Integer_klass); 1999 _box_klasses[T_LONG] = WK_KLASS(Long_klass); 2000 //_box_klasses[T_OBJECT] = WK_KLASS(object_klass); 2001 //_box_klasses[T_ARRAY] = WK_KLASS(object_klass); 2002 2003 { // Compute whether we should use loadClass or loadClassInternal when loading classes. |