< prev index next >

src/hotspot/share/classfile/systemDictionary.cpp

Print this page
rev 50307 : [mq]: cont


 231     if (throw_error) {
 232       THROW_MSG_NULL(vmSymbols::java_lang_NoClassDefFoundError(), class_name->as_C_string());
 233     } else {
 234       THROW_MSG_NULL(vmSymbols::java_lang_ClassNotFoundException(), class_name->as_C_string());
 235     }
 236   }
 237   return klass;
 238 }
 239 
 240 
 241 Klass* SystemDictionary::resolve_or_fail(Symbol* class_name,
 242                                            bool throw_error, TRAPS)
 243 {
 244   return resolve_or_fail(class_name, Handle(), Handle(), throw_error, THREAD);
 245 }
 246 
 247 
 248 // Forwards to resolve_instance_class_or_null
 249 
 250 Klass* SystemDictionary::resolve_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS) {

 251   assert(THREAD->can_call_java(),
 252          "can not load classes with compiler thread: class=%s, classloader=%s",
 253          class_name->as_C_string(),
 254          class_loader.is_null() ? "null" : class_loader->klass()->name()->as_C_string());
 255   if (FieldType::is_array(class_name)) {
 256     return resolve_array_class_or_null(class_name, class_loader, protection_domain, THREAD);
 257   } else if (FieldType::is_obj(class_name)) {
 258     ResourceMark rm(THREAD);
 259     // Ignore wrapping L and ;.
 260     TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
 261                                    class_name->utf8_length() - 2, CHECK_NULL);
 262     return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);
 263   } else {
 264     return resolve_instance_class_or_null(class_name, class_loader, protection_domain, THREAD);
 265   }
 266 }
 267 
 268 Klass* SystemDictionary::resolve_or_null(Symbol* class_name, TRAPS) {
 269   return resolve_or_null(class_name, Handle(), Handle(), THREAD);
 270 }




 231     if (throw_error) {
 232       THROW_MSG_NULL(vmSymbols::java_lang_NoClassDefFoundError(), class_name->as_C_string());
 233     } else {
 234       THROW_MSG_NULL(vmSymbols::java_lang_ClassNotFoundException(), class_name->as_C_string());
 235     }
 236   }
 237   return klass;
 238 }
 239 
 240 
 241 Klass* SystemDictionary::resolve_or_fail(Symbol* class_name,
 242                                            bool throw_error, TRAPS)
 243 {
 244   return resolve_or_fail(class_name, Handle(), Handle(), throw_error, THREAD);
 245 }
 246 
 247 
 248 // Forwards to resolve_instance_class_or_null
 249 
 250 Klass* SystemDictionary::resolve_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS) {
 251   assert (class_name != NULL, "");
 252   assert(THREAD->can_call_java(),
 253          "can not load classes with compiler thread: class=%s, classloader=%s",
 254          class_name->as_C_string(),
 255          class_loader.is_null() ? "null" : class_loader->klass()->name()->as_C_string());
 256   if (FieldType::is_array(class_name)) {
 257     return resolve_array_class_or_null(class_name, class_loader, protection_domain, THREAD);
 258   } else if (FieldType::is_obj(class_name)) {
 259     ResourceMark rm(THREAD);
 260     // Ignore wrapping L and ;.
 261     TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
 262                                    class_name->utf8_length() - 2, CHECK_NULL);
 263     return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);
 264   } else {
 265     return resolve_instance_class_or_null(class_name, class_loader, protection_domain, THREAD);
 266   }
 267 }
 268 
 269 Klass* SystemDictionary::resolve_or_null(Symbol* class_name, TRAPS) {
 270   return resolve_or_null(class_name, Handle(), Handle(), THREAD);
 271 }


< prev index next >