Mercurial > hg > graal-jvmci-8
diff 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 |
line wrap: on
line diff
--- a/src/share/vm/classfile/javaClasses.cpp Wed Jul 22 10:12:56 2015 -0700 +++ b/src/share/vm/classfile/javaClasses.cpp Mon Jul 20 18:57:07 2015 +0300 @@ -782,6 +782,22 @@ return name; } +// Returns the Java name for this Java mirror (Resource allocated) +// See Klass::external_name(). +// For primitive type Java mirrors, its type name is returned. +const char* java_lang_Class::as_external_name(oop java_class) { + assert(java_lang_Class::is_instance(java_class), "must be a Class object"); + const char* name = NULL; + if (is_primitive(java_class)) { + name = type2name(primitive_type(java_class)); + } else { + name = as_Klass(java_class)->external_name(); + } + if (name == NULL) { + name = "<null>"; + } + return name; +} Klass* java_lang_Class::array_klass(oop java_class) { Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));