hotspot/src/share/vm/memory/universe.cpp
changeset 1668 8ec481b8f514
parent 1606 dcf9714addbe
child 1681 9df064a8f4ca
equal deleted inserted replaced
1667:fc79935c3055 1668:8ec481b8f514
    47 klassOop Universe::_instanceKlassKlassObj             = NULL;
    47 klassOop Universe::_instanceKlassKlassObj             = NULL;
    48 klassOop Universe::_constantPoolKlassObj              = NULL;
    48 klassOop Universe::_constantPoolKlassObj              = NULL;
    49 klassOop Universe::_constantPoolCacheKlassObj         = NULL;
    49 klassOop Universe::_constantPoolCacheKlassObj         = NULL;
    50 klassOop Universe::_compiledICHolderKlassObj          = NULL;
    50 klassOop Universe::_compiledICHolderKlassObj          = NULL;
    51 klassOop Universe::_systemObjArrayKlassObj            = NULL;
    51 klassOop Universe::_systemObjArrayKlassObj            = NULL;
    52 oop Universe::_int_mirror                             =  NULL;
    52 klassOop Universe::_fillerArrayKlassObj               = NULL;
    53 oop Universe::_float_mirror                           =  NULL;
    53 oop Universe::_int_mirror                             = NULL;
    54 oop Universe::_double_mirror                          =  NULL;
    54 oop Universe::_float_mirror                           = NULL;
    55 oop Universe::_byte_mirror                            =  NULL;
    55 oop Universe::_double_mirror                          = NULL;
    56 oop Universe::_bool_mirror                            =  NULL;
    56 oop Universe::_byte_mirror                            = NULL;
    57 oop Universe::_char_mirror                            =  NULL;
    57 oop Universe::_bool_mirror                            = NULL;
    58 oop Universe::_long_mirror                            =  NULL;
    58 oop Universe::_char_mirror                            = NULL;
    59 oop Universe::_short_mirror                           =  NULL;
    59 oop Universe::_long_mirror                            = NULL;
    60 oop Universe::_void_mirror                            =  NULL;
    60 oop Universe::_short_mirror                           = NULL;
    61 oop Universe::_mirrors[T_VOID+1]                      =  { NULL /*, NULL...*/ };
    61 oop Universe::_void_mirror                            = NULL;
       
    62 oop Universe::_mirrors[T_VOID+1]                      = { NULL /*, NULL...*/ };
    62 oop Universe::_main_thread_group                      = NULL;
    63 oop Universe::_main_thread_group                      = NULL;
    63 oop Universe::_system_thread_group                    = NULL;
    64 oop Universe::_system_thread_group                    = NULL;
    64 typeArrayOop Universe::_the_empty_byte_array          = NULL;
    65 typeArrayOop Universe::_the_empty_byte_array          = NULL;
    65 typeArrayOop Universe::_the_empty_short_array         = NULL;
    66 typeArrayOop Universe::_the_empty_short_array         = NULL;
    66 typeArrayOop Universe::_the_empty_int_array           = NULL;
    67 typeArrayOop Universe::_the_empty_int_array           = NULL;
   124   f(objArrayKlassKlassObj());
   125   f(objArrayKlassKlassObj());
   125   f(typeArrayKlassKlassObj());
   126   f(typeArrayKlassKlassObj());
   126   f(instanceKlassKlassObj());
   127   f(instanceKlassKlassObj());
   127   f(constantPoolKlassObj());
   128   f(constantPoolKlassObj());
   128   f(systemObjArrayKlassObj());
   129   f(systemObjArrayKlassObj());
       
   130   f(fillerArrayKlassObj());
   129 }
   131 }
   130 
   132 
   131 void Universe::oops_do(OopClosure* f, bool do_all) {
   133 void Universe::oops_do(OopClosure* f, bool do_all) {
   132 
   134 
   133   f->do_oop((oop*) &_int_mirror);
   135   f->do_oop((oop*) &_int_mirror);
   178   f->do_oop((oop*)&_instanceKlassKlassObj);
   180   f->do_oop((oop*)&_instanceKlassKlassObj);
   179   f->do_oop((oop*)&_constantPoolKlassObj);
   181   f->do_oop((oop*)&_constantPoolKlassObj);
   180   f->do_oop((oop*)&_constantPoolCacheKlassObj);
   182   f->do_oop((oop*)&_constantPoolCacheKlassObj);
   181   f->do_oop((oop*)&_compiledICHolderKlassObj);
   183   f->do_oop((oop*)&_compiledICHolderKlassObj);
   182   f->do_oop((oop*)&_systemObjArrayKlassObj);
   184   f->do_oop((oop*)&_systemObjArrayKlassObj);
       
   185   f->do_oop((oop*)&_fillerArrayKlassObj);
   183   f->do_oop((oop*)&_the_empty_byte_array);
   186   f->do_oop((oop*)&_the_empty_byte_array);
   184   f->do_oop((oop*)&_the_empty_short_array);
   187   f->do_oop((oop*)&_the_empty_short_array);
   185   f->do_oop((oop*)&_the_empty_int_array);
   188   f->do_oop((oop*)&_the_empty_int_array);
   186   f->do_oop((oop*)&_the_empty_system_obj_array);
   189   f->do_oop((oop*)&_the_empty_system_obj_array);
   187   f->do_oop((oop*)&_the_empty_class_klass_array);
   190   f->do_oop((oop*)&_the_empty_class_klass_array);
   255         _typeArrayKlassObjs[T_BYTE]    = _byteArrayKlassObj;
   258         _typeArrayKlassObjs[T_BYTE]    = _byteArrayKlassObj;
   256         _typeArrayKlassObjs[T_SHORT]   = _shortArrayKlassObj;
   259         _typeArrayKlassObjs[T_SHORT]   = _shortArrayKlassObj;
   257         _typeArrayKlassObjs[T_INT]     = _intArrayKlassObj;
   260         _typeArrayKlassObjs[T_INT]     = _intArrayKlassObj;
   258         _typeArrayKlassObjs[T_LONG]    = _longArrayKlassObj;
   261         _typeArrayKlassObjs[T_LONG]    = _longArrayKlassObj;
   259 
   262 
   260         _methodKlassObj         = methodKlass::create_klass(CHECK);
   263         _methodKlassObj             = methodKlass::create_klass(CHECK);
   261         _constMethodKlassObj    = constMethodKlass::create_klass(CHECK);
   264         _constMethodKlassObj        = constMethodKlass::create_klass(CHECK);
   262         _methodDataKlassObj     = methodDataKlass::create_klass(CHECK);
   265         _methodDataKlassObj         = methodDataKlass::create_klass(CHECK);
   263         _constantPoolKlassObj       = constantPoolKlass::create_klass(CHECK);
   266         _constantPoolKlassObj       = constantPoolKlass::create_klass(CHECK);
   264         _constantPoolCacheKlassObj  = constantPoolCacheKlass::create_klass(CHECK);
   267         _constantPoolCacheKlassObj  = constantPoolCacheKlass::create_klass(CHECK);
   265 
   268 
   266         _compiledICHolderKlassObj   = compiledICHolderKlass::create_klass(CHECK);
   269         _compiledICHolderKlassObj   = compiledICHolderKlass::create_klass(CHECK);
   267         _systemObjArrayKlassObj     = objArrayKlassKlass::cast(objArrayKlassKlassObj())->allocate_system_objArray_klass(CHECK);
   270         _systemObjArrayKlassObj     = objArrayKlassKlass::cast(objArrayKlassKlassObj())->allocate_system_objArray_klass(CHECK);
   268 
   271         _fillerArrayKlassObj        = typeArrayKlass::create_klass(T_INT, sizeof(jint), "<filler>", CHECK);
   269         _the_empty_byte_array      = oopFactory::new_permanent_byteArray(0, CHECK);
   272 
       
   273         _the_empty_byte_array       = oopFactory::new_permanent_byteArray(0, CHECK);
   270         _the_empty_short_array      = oopFactory::new_permanent_shortArray(0, CHECK);
   274         _the_empty_short_array      = oopFactory::new_permanent_shortArray(0, CHECK);
   271         _the_empty_int_array        = oopFactory::new_permanent_intArray(0, CHECK);
   275         _the_empty_int_array        = oopFactory::new_permanent_intArray(0, CHECK);
   272         _the_empty_system_obj_array = oopFactory::new_system_objArray(0, CHECK);
   276         _the_empty_system_obj_array = oopFactory::new_system_objArray(0, CHECK);
   273 
   277 
   274         _the_array_interfaces_array = oopFactory::new_system_objArray(2, CHECK);
   278         _the_array_interfaces_array = oopFactory::new_system_objArray(2, CHECK);
   275         _vm_exception               = oopFactory::new_symbol("vm exception holder", CHECK);
   279         _vm_exception               = oopFactory::new_symbol("vm exception holder", CHECK);
   276       } else {
   280       } else {
   277 
       
   278         FileMapInfo *mapinfo = FileMapInfo::current_info();
   281         FileMapInfo *mapinfo = FileMapInfo::current_info();
   279         char* buffer = mapinfo->region_base(CompactingPermGenGen::md);
   282         char* buffer = mapinfo->region_base(CompactingPermGenGen::md);
   280         void** vtbl_list = (void**)buffer;
   283         void** vtbl_list = (void**)buffer;
   281         init_self_patching_vtbl_list(vtbl_list,
   284         init_self_patching_vtbl_list(vtbl_list,
   282                                      CompactingPermGenGen::vtbl_list_size);
   285                                      CompactingPermGenGen::vtbl_list_size);