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 {
|