src/hotspot/share/runtime/signature.cpp
changeset 48826 c4d9d1b08e2e
parent 47216 71c04702a3d5
child 48836 423bcbb288ff
equal deleted inserted replaced
48825:ef8a98bc71f8 48826:c4d9d1b08e2e
   390   }
   390   }
   391 }
   391 }
   392 
   392 
   393 oop SignatureStream::as_java_mirror(Handle class_loader, Handle protection_domain,
   393 oop SignatureStream::as_java_mirror(Handle class_loader, Handle protection_domain,
   394                                     FailureMode failure_mode, TRAPS) {
   394                                     FailureMode failure_mode, TRAPS) {
   395   if (!is_object())
   395   if (raw_length() == 1) {
   396     return Universe::java_mirror(type());
   396     // short-cut in a common case
   397   Klass* klass = as_klass(class_loader, protection_domain, failure_mode, CHECK_NULL);
   397     return SystemDictionary::find_java_mirror_for_type((char) raw_byte_at(0));
   398   if (klass == NULL)  return NULL;
   398   }
   399   return klass->java_mirror();
   399   TempNewSymbol signature = SymbolTable::new_symbol(_signature, _begin, _end, CHECK_NULL);
       
   400   Klass* no_accessing_klass = NULL;
       
   401   Handle mirror = SystemDictionary::find_java_mirror_for_type(signature,
       
   402                                                               no_accessing_klass,
       
   403                                                               class_loader,
       
   404                                                               protection_domain,
       
   405                                                               failure_mode,
       
   406                                                               CHECK_NULL);
       
   407   return mirror();
   400 }
   408 }
   401 
   409 
   402 Symbol* SignatureStream::as_symbol_or_null() {
   410 Symbol* SignatureStream::as_symbol_or_null() {
   403   // Create a symbol from for string _begin _end
   411   // Create a symbol from for string _begin _end
   404   ResourceMark rm;
   412   ResourceMark rm;