mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
6578152: fill_region_with_object has usability and safety issues
Reviewed-by: apetrusenko, ysr
This commit is contained in:
parent
26f6b1692a
commit
000b184507
25 changed files with 261 additions and 198 deletions
|
@ -49,16 +49,17 @@ klassOop Universe::_constantPoolKlassObj = NULL;
|
|||
klassOop Universe::_constantPoolCacheKlassObj = NULL;
|
||||
klassOop Universe::_compiledICHolderKlassObj = NULL;
|
||||
klassOop Universe::_systemObjArrayKlassObj = NULL;
|
||||
oop Universe::_int_mirror = NULL;
|
||||
oop Universe::_float_mirror = NULL;
|
||||
oop Universe::_double_mirror = NULL;
|
||||
oop Universe::_byte_mirror = NULL;
|
||||
oop Universe::_bool_mirror = NULL;
|
||||
oop Universe::_char_mirror = NULL;
|
||||
oop Universe::_long_mirror = NULL;
|
||||
oop Universe::_short_mirror = NULL;
|
||||
oop Universe::_void_mirror = NULL;
|
||||
oop Universe::_mirrors[T_VOID+1] = { NULL /*, NULL...*/ };
|
||||
klassOop Universe::_fillerArrayKlassObj = NULL;
|
||||
oop Universe::_int_mirror = NULL;
|
||||
oop Universe::_float_mirror = NULL;
|
||||
oop Universe::_double_mirror = NULL;
|
||||
oop Universe::_byte_mirror = NULL;
|
||||
oop Universe::_bool_mirror = NULL;
|
||||
oop Universe::_char_mirror = NULL;
|
||||
oop Universe::_long_mirror = NULL;
|
||||
oop Universe::_short_mirror = NULL;
|
||||
oop Universe::_void_mirror = NULL;
|
||||
oop Universe::_mirrors[T_VOID+1] = { NULL /*, NULL...*/ };
|
||||
oop Universe::_main_thread_group = NULL;
|
||||
oop Universe::_system_thread_group = NULL;
|
||||
typeArrayOop Universe::_the_empty_byte_array = NULL;
|
||||
|
@ -126,6 +127,7 @@ void Universe::system_classes_do(void f(klassOop)) {
|
|||
f(instanceKlassKlassObj());
|
||||
f(constantPoolKlassObj());
|
||||
f(systemObjArrayKlassObj());
|
||||
f(fillerArrayKlassObj());
|
||||
}
|
||||
|
||||
void Universe::oops_do(OopClosure* f, bool do_all) {
|
||||
|
@ -180,6 +182,7 @@ void Universe::oops_do(OopClosure* f, bool do_all) {
|
|||
f->do_oop((oop*)&_constantPoolCacheKlassObj);
|
||||
f->do_oop((oop*)&_compiledICHolderKlassObj);
|
||||
f->do_oop((oop*)&_systemObjArrayKlassObj);
|
||||
f->do_oop((oop*)&_fillerArrayKlassObj);
|
||||
f->do_oop((oop*)&_the_empty_byte_array);
|
||||
f->do_oop((oop*)&_the_empty_short_array);
|
||||
f->do_oop((oop*)&_the_empty_int_array);
|
||||
|
@ -257,16 +260,17 @@ void Universe::genesis(TRAPS) {
|
|||
_typeArrayKlassObjs[T_INT] = _intArrayKlassObj;
|
||||
_typeArrayKlassObjs[T_LONG] = _longArrayKlassObj;
|
||||
|
||||
_methodKlassObj = methodKlass::create_klass(CHECK);
|
||||
_constMethodKlassObj = constMethodKlass::create_klass(CHECK);
|
||||
_methodDataKlassObj = methodDataKlass::create_klass(CHECK);
|
||||
_methodKlassObj = methodKlass::create_klass(CHECK);
|
||||
_constMethodKlassObj = constMethodKlass::create_klass(CHECK);
|
||||
_methodDataKlassObj = methodDataKlass::create_klass(CHECK);
|
||||
_constantPoolKlassObj = constantPoolKlass::create_klass(CHECK);
|
||||
_constantPoolCacheKlassObj = constantPoolCacheKlass::create_klass(CHECK);
|
||||
|
||||
_compiledICHolderKlassObj = compiledICHolderKlass::create_klass(CHECK);
|
||||
_systemObjArrayKlassObj = objArrayKlassKlass::cast(objArrayKlassKlassObj())->allocate_system_objArray_klass(CHECK);
|
||||
_fillerArrayKlassObj = typeArrayKlass::create_klass(T_INT, sizeof(jint), "<filler>", CHECK);
|
||||
|
||||
_the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK);
|
||||
_the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK);
|
||||
_the_empty_short_array = oopFactory::new_permanent_shortArray(0, CHECK);
|
||||
_the_empty_int_array = oopFactory::new_permanent_intArray(0, CHECK);
|
||||
_the_empty_system_obj_array = oopFactory::new_system_objArray(0, CHECK);
|
||||
|
@ -274,7 +278,6 @@ void Universe::genesis(TRAPS) {
|
|||
_the_array_interfaces_array = oopFactory::new_system_objArray(2, CHECK);
|
||||
_vm_exception = oopFactory::new_symbol("vm exception holder", CHECK);
|
||||
} else {
|
||||
|
||||
FileMapInfo *mapinfo = FileMapInfo::current_info();
|
||||
char* buffer = mapinfo->region_base(CompactingPermGenGen::md);
|
||||
void** vtbl_list = (void**)buffer;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue