Mercurial > hg > truffle
comparison src/share/vm/memory/universe.cpp @ 481:7d7a7c599c17
6578152: fill_region_with_object has usability and safety issues
Reviewed-by: apetrusenko, ysr
author | jcoomes |
---|---|
date | Thu, 11 Dec 2008 12:05:08 -0800 |
parents | c96030fff130 |
children | d593294016c3 |
comparison
equal
deleted
inserted
replaced
480:d249b360e026 | 481:7d7a7c599c17 |
---|---|
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); |