189 |
189 |
190 // Allocation |
190 // Allocation |
191 InstanceKlass* ik; |
191 InstanceKlass* ik; |
192 if (rt == REF_NONE) { |
192 if (rt == REF_NONE) { |
193 if (name == vmSymbols::java_lang_Class()) { |
193 if (name == vmSymbols::java_lang_Class()) { |
194 ik = new (loader_data, size, THREAD) instanceMirrorKlass( |
194 ik = new (loader_data, size, THREAD) InstanceMirrorKlass( |
195 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
195 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
196 access_flags, !host_klass.is_null()); |
196 access_flags, !host_klass.is_null()); |
197 } else if (name == vmSymbols::java_lang_ClassLoader() || |
197 } else if (name == vmSymbols::java_lang_ClassLoader() || |
198 (SystemDictionary::ClassLoader_klass_loaded() && |
198 (SystemDictionary::ClassLoader_klass_loaded() && |
199 super_klass != NULL && |
199 super_klass != NULL && |
200 super_klass->is_subtype_of(SystemDictionary::ClassLoader_klass()))) { |
200 super_klass->is_subtype_of(SystemDictionary::ClassLoader_klass()))) { |
201 ik = new (loader_data, size, THREAD) instanceClassLoaderKlass( |
201 ik = new (loader_data, size, THREAD) InstanceClassLoaderKlass( |
202 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
202 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
203 access_flags, !host_klass.is_null()); |
203 access_flags, !host_klass.is_null()); |
204 } else { |
204 } else { |
205 // normal class |
205 // normal class |
206 ik = new (loader_data, size, THREAD) InstanceKlass( |
206 ik = new (loader_data, size, THREAD) InstanceKlass( |
207 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
207 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
208 access_flags, !host_klass.is_null()); |
208 access_flags, !host_klass.is_null()); |
209 } |
209 } |
210 } else { |
210 } else { |
211 // reference klass |
211 // reference klass |
212 ik = new (loader_data, size, THREAD) instanceRefKlass( |
212 ik = new (loader_data, size, THREAD) InstanceRefKlass( |
213 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
213 vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, |
214 access_flags, !host_klass.is_null()); |
214 access_flags, !host_klass.is_null()); |
215 } |
215 } |
216 |
216 |
217 return ik; |
217 return ik; |