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); |