src/share/vm/oops/klass.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6817525 Sdiff src/share/vm/oops

src/share/vm/oops/klass.cpp

Print this page




 483   fatal("array_klass should be dispatched to instanceKlass, objArrayKlass or typeArrayKlass");
 484   return NULL;
 485 }
 486 
 487 
 488 klassOop Klass::array_klass_impl(bool or_null, TRAPS) {
 489   fatal("array_klass should be dispatched to instanceKlass, objArrayKlass or typeArrayKlass");
 490   return NULL;
 491 }
 492 
 493 
 494 void Klass::with_array_klasses_do(void f(klassOop k)) {
 495   f(as_klassOop());
 496 }
 497 
 498 
 499 const char* Klass::external_name() const {
 500   if (oop_is_instance()) {
 501     instanceKlass* ik = (instanceKlass*) this;
 502     if (ik->is_anonymous()) {
 503       assert(AnonymousClasses, "");
 504       intptr_t hash = ik->java_mirror()->identity_hash();
 505       char     hash_buf[40];
 506       sprintf(hash_buf, "/" UINTX_FORMAT, (uintx)hash);
 507       size_t   hash_len = strlen(hash_buf);
 508 
 509       size_t result_len = name()->utf8_length();
 510       char*  result     = NEW_RESOURCE_ARRAY(char, result_len + hash_len + 1);
 511       name()->as_klass_external_name(result, (int) result_len + 1);
 512       assert(strlen(result) == result_len, "");
 513       strcpy(result + result_len, hash_buf);
 514       assert(strlen(result) == result_len + hash_len, "");
 515       return result;
 516     }
 517   }
 518   if (name() == NULL)  return "<unknown>";
 519   return name()->as_klass_external_name();
 520 }
 521 
 522 
 523 const char* Klass::signature_name() const {




 483   fatal("array_klass should be dispatched to instanceKlass, objArrayKlass or typeArrayKlass");
 484   return NULL;
 485 }
 486 
 487 
 488 klassOop Klass::array_klass_impl(bool or_null, TRAPS) {
 489   fatal("array_klass should be dispatched to instanceKlass, objArrayKlass or typeArrayKlass");
 490   return NULL;
 491 }
 492 
 493 
 494 void Klass::with_array_klasses_do(void f(klassOop k)) {
 495   f(as_klassOop());
 496 }
 497 
 498 
 499 const char* Klass::external_name() const {
 500   if (oop_is_instance()) {
 501     instanceKlass* ik = (instanceKlass*) this;
 502     if (ik->is_anonymous()) {
 503       assert(EnableInvokeDynamic, "");
 504       intptr_t hash = ik->java_mirror()->identity_hash();
 505       char     hash_buf[40];
 506       sprintf(hash_buf, "/" UINTX_FORMAT, (uintx)hash);
 507       size_t   hash_len = strlen(hash_buf);
 508 
 509       size_t result_len = name()->utf8_length();
 510       char*  result     = NEW_RESOURCE_ARRAY(char, result_len + hash_len + 1);
 511       name()->as_klass_external_name(result, (int) result_len + 1);
 512       assert(strlen(result) == result_len, "");
 513       strcpy(result + result_len, hash_buf);
 514       assert(strlen(result) == result_len + hash_len, "");
 515       return result;
 516     }
 517   }
 518   if (name() == NULL)  return "<unknown>";
 519   return name()->as_klass_external_name();
 520 }
 521 
 522 
 523 const char* Klass::signature_name() const {


src/share/vm/oops/klass.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File