hotspot/src/share/vm/oops/klass.cpp
changeset 1550 be2fc37a817f
parent 670 ddf3e9583f2f
child 2131 98f9cef66a34
equal deleted inserted replaced
1549:710f8deef989 1550:be2fc37a817f
   476   f(as_klassOop());
   476   f(as_klassOop());
   477 }
   477 }
   478 
   478 
   479 
   479 
   480 const char* Klass::external_name() const {
   480 const char* Klass::external_name() const {
       
   481   if (oop_is_instance()) {
       
   482     instanceKlass* ik = (instanceKlass*) this;
       
   483     if (ik->is_anonymous()) {
       
   484       assert(AnonymousClasses, "");
       
   485       intptr_t hash = ik->java_mirror()->identity_hash();
       
   486       char     hash_buf[40];
       
   487       sprintf(hash_buf, "/" UINTX_FORMAT, (uintx)hash);
       
   488       size_t   hash_len = strlen(hash_buf);
       
   489 
       
   490       size_t result_len = name()->utf8_length();
       
   491       char*  result     = NEW_RESOURCE_ARRAY(char, result_len + hash_len + 1);
       
   492       name()->as_klass_external_name(result, (int) result_len + 1);
       
   493       assert(strlen(result) == result_len, "");
       
   494       strcpy(result + result_len, hash_buf);
       
   495       assert(strlen(result) == result_len + hash_len, "");
       
   496       return result;
       
   497     }
       
   498   }
   481   return name()->as_klass_external_name();
   499   return name()->as_klass_external_name();
   482 }
   500 }
   483 
   501 
   484 
   502 
   485 char* Klass::signature_name() const {
   503 char* Klass::signature_name() const {