equal
deleted
inserted
replaced
171 } |
171 } |
172 } |
172 } |
173 } |
173 } |
174 |
174 |
175 ciEnv::_unloaded_cisymbol = ciObjectFactory::get_symbol(vmSymbols::dummy_symbol()); |
175 ciEnv::_unloaded_cisymbol = ciObjectFactory::get_symbol(vmSymbols::dummy_symbol()); |
176 // Create dummy InstanceKlass and objArrayKlass object and assign them idents |
176 // Create dummy InstanceKlass and ObjArrayKlass object and assign them idents |
177 ciEnv::_unloaded_ciinstance_klass = new (_arena) ciInstanceKlass(ciEnv::_unloaded_cisymbol, NULL, NULL); |
177 ciEnv::_unloaded_ciinstance_klass = new (_arena) ciInstanceKlass(ciEnv::_unloaded_cisymbol, NULL, NULL); |
178 init_ident_of(ciEnv::_unloaded_ciinstance_klass); |
178 init_ident_of(ciEnv::_unloaded_ciinstance_klass); |
179 ciEnv::_unloaded_ciobjarrayklass = new (_arena) ciObjArrayKlass(ciEnv::_unloaded_cisymbol, ciEnv::_unloaded_ciinstance_klass, 1); |
179 ciEnv::_unloaded_ciobjarrayklass = new (_arena) ciObjArrayKlass(ciEnv::_unloaded_cisymbol, ciEnv::_unloaded_ciinstance_klass, 1); |
180 init_ident_of(ciEnv::_unloaded_ciobjarrayklass); |
180 init_ident_of(ciEnv::_unloaded_ciobjarrayklass); |
181 assert(ciEnv::_unloaded_ciobjarrayklass->is_obj_array_klass(), "just checking"); |
181 assert(ciEnv::_unloaded_ciobjarrayklass->is_obj_array_klass(), "just checking"); |
449 |
449 |
450 // This is a new unloaded klass. Create it and stick it in |
450 // This is a new unloaded klass. Create it and stick it in |
451 // the cache. |
451 // the cache. |
452 ciKlass* new_klass = NULL; |
452 ciKlass* new_klass = NULL; |
453 |
453 |
454 // Two cases: this is an unloaded objArrayKlass or an |
454 // Two cases: this is an unloaded ObjArrayKlass or an |
455 // unloaded InstanceKlass. Deal with both. |
455 // unloaded InstanceKlass. Deal with both. |
456 if (name->byte_at(0) == '[') { |
456 if (name->byte_at(0) == '[') { |
457 // Decompose the name.' |
457 // Decompose the name.' |
458 FieldArrayInfo fd; |
458 FieldArrayInfo fd; |
459 BasicType element_type = FieldType::get_array_info(name->get_symbol(), |
459 BasicType element_type = FieldType::get_array_info(name->get_symbol(), |
475 assert(dimension > 1, "one dimensional type arrays are always loaded."); |
475 assert(dimension > 1, "one dimensional type arrays are always loaded."); |
476 |
476 |
477 // The type array itself takes care of one of the dimensions. |
477 // The type array itself takes care of one of the dimensions. |
478 dimension--; |
478 dimension--; |
479 |
479 |
480 // The element klass is a typeArrayKlass. |
480 // The element klass is a TypeArrayKlass. |
481 element_klass = ciTypeArrayKlass::make(element_type); |
481 element_klass = ciTypeArrayKlass::make(element_type); |
482 } |
482 } |
483 new_klass = new (arena()) ciObjArrayKlass(name, element_klass, dimension); |
483 new_klass = new (arena()) ciObjArrayKlass(name, element_klass, dimension); |
484 } else { |
484 } else { |
485 jobject loader_handle = NULL; |
485 jobject loader_handle = NULL; |