hotspot/src/share/vm/prims/methodHandles.cpp
changeset 13973 cb904e0b6a45
parent 13732 a9865f5514fc
child 14391 df0a1573d5bd
equal deleted inserted replaced
13972:115bfa87d77a 13973:cb904e0b6a45
   561       return object_java_mirror();
   561       return object_java_mirror();
   562     } else if (s == vmSymbols::class_signature()) {
   562     } else if (s == vmSymbols::class_signature()) {
   563       return Klass::cast(SystemDictionary::Class_klass())->java_mirror();
   563       return Klass::cast(SystemDictionary::Class_klass())->java_mirror();
   564     } else if (s == vmSymbols::string_signature()) {
   564     } else if (s == vmSymbols::string_signature()) {
   565       return Klass::cast(SystemDictionary::String_klass())->java_mirror();
   565       return Klass::cast(SystemDictionary::String_klass())->java_mirror();
   566     } else {
       
   567       int len = s->utf8_length();
       
   568       if (s->byte_at(0) == 'L' && s->byte_at(len-1) == ';') {
       
   569         TempNewSymbol cname = SymbolTable::probe((const char*)&s->bytes()[1], len-2);
       
   570         if (cname == NULL)  return NULL;
       
   571         Klass* wkk = SystemDictionary::find_well_known_klass(cname);
       
   572         if (wkk == NULL)  return NULL;
       
   573         return Klass::cast(wkk)->java_mirror();
       
   574       }
       
   575     }
   566     }
   576   }
   567   }
   577   return NULL;
   568   return NULL;
   578 }
   569 }
   579 
   570