< prev index next >

src/hotspot/share/oops/klass.cpp

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


 576 const char* Klass::external_name() const {
 577   if (is_instance_klass()) {
 578     const InstanceKlass* ik = static_cast<const InstanceKlass*>(this);
 579     if (ik->is_anonymous()) {
 580       char addr_buf[20];
 581       jio_snprintf(addr_buf, 20, "/" INTPTR_FORMAT, p2i(ik));
 582       size_t addr_len = strlen(addr_buf);
 583       size_t name_len = name()->utf8_length();
 584       char*  result   = NEW_RESOURCE_ARRAY(char, name_len + addr_len + 1);
 585       name()->as_klass_external_name(result, (int) name_len + 1);
 586       assert(strlen(result) == name_len, "");
 587       strcpy(result + name_len, addr_buf);
 588       assert(strlen(result) == name_len + addr_len, "");
 589       return result;
 590     }
 591   }
 592   if (name() == NULL)  return "<unknown>";
 593   return name()->as_klass_external_name();
 594 }
 595 
 596 
 597 const char* Klass::signature_name() const {
 598   if (name() == NULL)  return "<unknown>";
 599   return name()->as_C_string();






 600 }
 601 
 602 // Unless overridden, modifier_flags is 0.
 603 jint Klass::compute_modifier_flags(TRAPS) const {
 604   return 0;
 605 }
 606 
 607 int Klass::atomic_incr_biased_lock_revocation_count() {
 608   return (int) Atomic::add(1, &_biased_lock_revocation_count);
 609 }
 610 
 611 // Unless overridden, jvmti_class_status has no flags set.
 612 jint Klass::jvmti_class_status() const {
 613   return 0;
 614 }
 615 
 616 
 617 // Printing
 618 
 619 void Klass::print_on(outputStream* st) const {




 576 const char* Klass::external_name() const {
 577   if (is_instance_klass()) {
 578     const InstanceKlass* ik = static_cast<const InstanceKlass*>(this);
 579     if (ik->is_anonymous()) {
 580       char addr_buf[20];
 581       jio_snprintf(addr_buf, 20, "/" INTPTR_FORMAT, p2i(ik));
 582       size_t addr_len = strlen(addr_buf);
 583       size_t name_len = name()->utf8_length();
 584       char*  result   = NEW_RESOURCE_ARRAY(char, name_len + addr_len + 1);
 585       name()->as_klass_external_name(result, (int) name_len + 1);
 586       assert(strlen(result) == name_len, "");
 587       strcpy(result + name_len, addr_buf);
 588       assert(strlen(result) == name_len + addr_len, "");
 589       return result;
 590     }
 591   }
 592   if (name() == NULL)  return "<unknown>";
 593   return name()->as_klass_external_name();
 594 }
 595 

 596 const char* Klass::signature_name() const {
 597   if (name() == NULL)  return "<unknown>";
 598   return name()->as_C_string();
 599 }
 600 
 601 const char* Klass::external_kind() const {
 602   if (is_interface()) return "interface";
 603   if (is_abstract()) return "abstract class";
 604   return "class";
 605 }
 606 
 607 // Unless overridden, modifier_flags is 0.
 608 jint Klass::compute_modifier_flags(TRAPS) const {
 609   return 0;
 610 }
 611 
 612 int Klass::atomic_incr_biased_lock_revocation_count() {
 613   return (int) Atomic::add(1, &_biased_lock_revocation_count);
 614 }
 615 
 616 // Unless overridden, jvmti_class_status has no flags set.
 617 jint Klass::jvmti_class_status() const {
 618   return 0;
 619 }
 620 
 621 
 622 // Printing
 623 
 624 void Klass::print_on(outputStream* st) const {


< prev index next >