< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page
rev 49172 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes, mdoerr, njian


 619 const char* Klass::external_name() const {
 620   if (is_instance_klass()) {
 621     const InstanceKlass* ik = static_cast<const InstanceKlass*>(this);
 622     if (ik->is_anonymous()) {
 623       char addr_buf[20];
 624       jio_snprintf(addr_buf, 20, "/" INTPTR_FORMAT, p2i(ik));
 625       size_t addr_len = strlen(addr_buf);
 626       size_t name_len = name()->utf8_length();
 627       char*  result   = NEW_RESOURCE_ARRAY(char, name_len + addr_len + 1);
 628       name()->as_klass_external_name(result, (int) name_len + 1);
 629       assert(strlen(result) == name_len, "");
 630       strcpy(result + name_len, addr_buf);
 631       assert(strlen(result) == name_len + addr_len, "");
 632       return result;
 633     }
 634   }
 635   if (name() == NULL)  return "<unknown>";
 636   return name()->as_klass_external_name();
 637 }
 638 
 639 
 640 const char* Klass::signature_name() const {
 641   if (name() == NULL)  return "<unknown>";
 642   return name()->as_C_string();






 643 }
 644 
 645 // Unless overridden, modifier_flags is 0.
 646 jint Klass::compute_modifier_flags(TRAPS) const {
 647   return 0;
 648 }
 649 
 650 int Klass::atomic_incr_biased_lock_revocation_count() {
 651   return (int) Atomic::add(1, &_biased_lock_revocation_count);
 652 }
 653 
 654 // Unless overridden, jvmti_class_status has no flags set.
 655 jint Klass::jvmti_class_status() const {
 656   return 0;
 657 }
 658 
 659 
 660 // Printing
 661 
 662 void Klass::print_on(outputStream* st) const {




 619 const char* Klass::external_name() const {
 620   if (is_instance_klass()) {
 621     const InstanceKlass* ik = static_cast<const InstanceKlass*>(this);
 622     if (ik->is_anonymous()) {
 623       char addr_buf[20];
 624       jio_snprintf(addr_buf, 20, "/" INTPTR_FORMAT, p2i(ik));
 625       size_t addr_len = strlen(addr_buf);
 626       size_t name_len = name()->utf8_length();
 627       char*  result   = NEW_RESOURCE_ARRAY(char, name_len + addr_len + 1);
 628       name()->as_klass_external_name(result, (int) name_len + 1);
 629       assert(strlen(result) == name_len, "");
 630       strcpy(result + name_len, addr_buf);
 631       assert(strlen(result) == name_len + addr_len, "");
 632       return result;
 633     }
 634   }
 635   if (name() == NULL)  return "<unknown>";
 636   return name()->as_klass_external_name();
 637 }
 638 

 639 const char* Klass::signature_name() const {
 640   if (name() == NULL)  return "<unknown>";
 641   return name()->as_C_string();
 642 }
 643 
 644 const char* Klass::external_kind() const {
 645   if (is_interface()) return "interface";
 646   if (is_abstract()) return "abstract class";
 647   return "class";
 648 }
 649 
 650 // Unless overridden, modifier_flags is 0.
 651 jint Klass::compute_modifier_flags(TRAPS) const {
 652   return 0;
 653 }
 654 
 655 int Klass::atomic_incr_biased_lock_revocation_count() {
 656   return (int) Atomic::add(1, &_biased_lock_revocation_count);
 657 }
 658 
 659 // Unless overridden, jvmti_class_status has no flags set.
 660 jint Klass::jvmti_class_status() const {
 661   return 0;
 662 }
 663 
 664 
 665 // Printing
 666 
 667 void Klass::print_on(outputStream* st) const {


< prev index next >