Mercurial > hg > graal-jvmci-8
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; |