< prev index next >

src/share/vm/classfile/systemDictionary.cpp

Print this page
rev 9820 : imported patch cleaner-cleanup


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(FinalReference_klass))->set_reference_type(REF_FINAL);
1981   InstanceKlass::cast(WK_KLASS(PhantomReference_klass))->set_reference_type(REF_PHANTOM);

1982 
1983   // JSR 292 classes
1984   WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass);
1985   WKID jsr292_group_end   = WK_KLASS_ENUM_NAME(VolatileCallSite_klass);
1986   initialize_wk_klasses_until(jsr292_group_start, scan, CHECK);
1987   initialize_wk_klasses_through(jsr292_group_end, scan, CHECK);
1988   initialize_wk_klasses_until(NOT_JVMCI(WKID_LIMIT) JVMCI_ONLY(FIRST_JVMCI_WKID), scan, CHECK);
1989 
1990   _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass);
1991   _box_klasses[T_CHAR]    = WK_KLASS(Character_klass);
1992   _box_klasses[T_FLOAT]   = WK_KLASS(Float_klass);
1993   _box_klasses[T_DOUBLE]  = WK_KLASS(Double_klass);
1994   _box_klasses[T_BYTE]    = WK_KLASS(Byte_klass);
1995   _box_klasses[T_SHORT]   = WK_KLASS(Short_klass);
1996   _box_klasses[T_INT]     = WK_KLASS(Integer_klass);
1997   _box_klasses[T_LONG]    = WK_KLASS(Long_klass);
1998   //_box_klasses[T_OBJECT]  = WK_KLASS(object_klass);
1999   //_box_klasses[T_ARRAY]   = WK_KLASS(object_klass);
2000 
2001   { // Compute whether we should use loadClass or loadClassInternal when loading classes.


< prev index next >