231 assert(!THREAD->is_Compiler_thread(), |
231 assert(!THREAD->is_Compiler_thread(), |
232 err_msg("can not load classes with compiler thread: class=%s, classloader=%s", |
232 err_msg("can not load classes with compiler thread: class=%s, classloader=%s", |
233 class_name->as_C_string(), |
233 class_name->as_C_string(), |
234 class_loader.is_null() ? "null" : class_loader->klass()->name()->as_C_string())); |
234 class_loader.is_null() ? "null" : class_loader->klass()->name()->as_C_string())); |
235 if (FieldType::is_array(class_name)) { |
235 if (FieldType::is_array(class_name)) { |
236 return resolve_array_class_or_null(class_name, class_loader, protection_domain, CHECK_NULL); |
236 return resolve_array_class_or_null(class_name, class_loader, protection_domain, THREAD); |
237 } else if (FieldType::is_obj(class_name)) { |
237 } else if (FieldType::is_obj(class_name)) { |
238 ResourceMark rm(THREAD); |
238 ResourceMark rm(THREAD); |
239 // Ignore wrapping L and ;. |
239 // Ignore wrapping L and ;. |
240 TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1, |
240 TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1, |
241 class_name->utf8_length() - 2, CHECK_NULL); |
241 class_name->utf8_length() - 2, CHECK_NULL); |
242 return resolve_instance_class_or_null(name, class_loader, protection_domain, CHECK_NULL); |
242 return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD); |
243 } else { |
243 } else { |
244 return resolve_instance_class_or_null(class_name, class_loader, protection_domain, CHECK_NULL); |
244 return resolve_instance_class_or_null(class_name, class_loader, protection_domain, THREAD); |
245 } |
245 } |
246 } |
246 } |
247 |
247 |
248 Klass* SystemDictionary::resolve_or_null(Symbol* class_name, TRAPS) { |
248 Klass* SystemDictionary::resolve_or_null(Symbol* class_name, TRAPS) { |
249 return resolve_or_null(class_name, Handle(), Handle(), THREAD); |
249 return resolve_or_null(class_name, Handle(), Handle(), THREAD); |