--- a/hotspot/src/share/vm/oops/arrayKlass.cpp Wed Aug 30 19:18:22 2017 -0400
+++ b/hotspot/src/share/vm/oops/arrayKlass.cpp Mon Aug 28 15:34:04 2017 -0700
@@ -187,12 +187,29 @@
void ArrayKlass::remove_unshareable_info() {
Klass::remove_unshareable_info();
+ if (_higher_dimension != NULL) {
+ ArrayKlass *ak = ArrayKlass::cast(higher_dimension());
+ ak->remove_unshareable_info();
+ }
+}
+
+void ArrayKlass::remove_java_mirror() {
+ Klass::remove_java_mirror();
+ if (_higher_dimension != NULL) {
+ ArrayKlass *ak = ArrayKlass::cast(higher_dimension());
+ ak->remove_java_mirror();
+ }
}
void ArrayKlass::restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS) {
assert(loader_data == ClassLoaderData::the_null_class_loader_data(), "array classes belong to null loader");
Klass::restore_unshareable_info(loader_data, protection_domain, CHECK);
// Klass recreates the component mirror also
+
+ if (_higher_dimension != NULL) {
+ ArrayKlass *ak = ArrayKlass::cast(higher_dimension());
+ ak->restore_unshareable_info(loader_data, protection_domain, CHECK);
+ }
}
// Printing