Tue, 25 Aug 2015 11:20:35 -0700
Merge
.hgtags | file | annotate | diff | comparison | revisions |
1.1 --- a/.hgtags Mon Aug 17 14:02:43 2015 -0700 1.2 +++ b/.hgtags Tue Aug 25 11:20:35 2015 -0700 1.3 @@ -733,6 +733,7 @@ 1.4 d8519b30e607f87cad6c949c6b52c1dba0cde7a8 jdk8u65-b08 1.5 c6d1a21e213d62f423ac9013bcc7dc0bc05e38b6 jdk8u65-b09 1.6 0274b03fdf4a3e4d125547d68ed74b4f55d515ec jdk8u65-b10 1.7 +a106723ba50719c479614d1f599e951edb51506c jdk8u65-b11 1.8 878cb0df27c22c6b1e9f4add1eb3da3edc8ab51d jdk8u66-b00 1.9 777a354cada52b831a32bfc5362ad7cedfde4450 jdk8u66-b01 1.10 0366ad2644f58ec88af9cb2ea8c23a02559fb2d1 hs25.66-b02 1.11 @@ -742,4 +743,5 @@ 1.12 aedefb75358f3cda5181bf594c2cda833056b25a jdk8u66-b08 1.13 83621deea0fcb4a517b94c5546b4f8738588cb6c jdk8u66-b09 1.14 5280a8174aea13bd242480419e6228857dac7b59 jdk8u66-b10 1.15 +8a23b6392c590b7bf5f6ad2c4746dc03981a7f60 jdk8u66-b11 1.16 9a158a0c243beb610dbaabd63d6218d3ce5825f1 jdk8u71-b00
2.1 --- a/src/share/vm/classfile/javaClasses.cpp Mon Aug 17 14:02:43 2015 -0700 2.2 +++ b/src/share/vm/classfile/javaClasses.cpp Tue Aug 25 11:20:35 2015 -0700 2.3 @@ -782,6 +782,22 @@ 2.4 return name; 2.5 } 2.6 2.7 +// Returns the Java name for this Java mirror (Resource allocated) 2.8 +// See Klass::external_name(). 2.9 +// For primitive type Java mirrors, its type name is returned. 2.10 +const char* java_lang_Class::as_external_name(oop java_class) { 2.11 + assert(java_lang_Class::is_instance(java_class), "must be a Class object"); 2.12 + const char* name = NULL; 2.13 + if (is_primitive(java_class)) { 2.14 + name = type2name(primitive_type(java_class)); 2.15 + } else { 2.16 + name = as_Klass(java_class)->external_name(); 2.17 + } 2.18 + if (name == NULL) { 2.19 + name = "<null>"; 2.20 + } 2.21 + return name; 2.22 +} 2.23 2.24 Klass* java_lang_Class::array_klass(oop java_class) { 2.25 Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));
3.1 --- a/src/share/vm/classfile/javaClasses.hpp Mon Aug 17 14:02:43 2015 -0700 3.2 +++ b/src/share/vm/classfile/javaClasses.hpp Tue Aug 25 11:20:35 2015 -0700 3.3 @@ -270,6 +270,7 @@ 3.4 } 3.5 static Symbol* as_signature(oop java_class, bool intern_if_not_found, TRAPS); 3.6 static void print_signature(oop java_class, outputStream *st); 3.7 + static const char* as_external_name(oop java_class); 3.8 // Testing 3.9 static bool is_instance(oop obj) { 3.10 return obj != NULL && obj->klass() == SystemDictionary::Class_klass();
4.1 --- a/src/share/vm/runtime/vframe.cpp Mon Aug 17 14:02:43 2015 -0700 4.2 +++ b/src/share/vm/runtime/vframe.cpp Tue Aug 25 11:20:35 2015 -0700 4.3 @@ -148,8 +148,7 @@ 4.4 if (obj.not_null()) { 4.5 st->print("\t- %s <" INTPTR_FORMAT "> ", lock_state, (address)obj()); 4.6 if (obj->klass() == SystemDictionary::Class_klass()) { 4.7 - Klass* target_klass = java_lang_Class::as_Klass(obj()); 4.8 - st->print_cr("(a java.lang.Class for %s)", InstanceKlass::cast(target_klass)->external_name()); 4.9 + st->print_cr("(a java.lang.Class for %s)", java_lang_Class::as_external_name(obj())); 4.10 } else { 4.11 Klass* k = obj->klass(); 4.12 st->print_cr("(a %s)", k->external_name());