comparison src/share/vm/classfile/javaClasses.cpp @ 23413:b1883db930e7

8048353: jstack -l crashes VM when a Java mirror for a primitive type is locked Reviewed-by: coleenp, dcubed
author vkempik
date Mon, 20 Jul 2015 18:57:07 +0300
parents 157895117ad5
children dd9cc155639c efe013052465
comparison
equal deleted inserted replaced
23190:ae5624088d86 23413:b1883db930e7
780 } 780 }
781 } 781 }
782 return name; 782 return name;
783 } 783 }
784 784
785 // Returns the Java name for this Java mirror (Resource allocated)
786 // See Klass::external_name().
787 // For primitive type Java mirrors, its type name is returned.
788 const char* java_lang_Class::as_external_name(oop java_class) {
789 assert(java_lang_Class::is_instance(java_class), "must be a Class object");
790 const char* name = NULL;
791 if (is_primitive(java_class)) {
792 name = type2name(primitive_type(java_class));
793 } else {
794 name = as_Klass(java_class)->external_name();
795 }
796 if (name == NULL) {
797 name = "<null>";
798 }
799 return name;
800 }
785 801
786 Klass* java_lang_Class::array_klass(oop java_class) { 802 Klass* java_lang_Class::array_klass(oop java_class) {
787 Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset)); 803 Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));
788 assert(k == NULL || k->is_klass() && k->oop_is_array(), "should be array klass"); 804 assert(k == NULL || k->is_klass() && k->oop_is_array(), "should be array klass");
789 return k; 805 return k;