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