< prev index next >

src/hotspot/share/oops/instanceMirrorKlass.inline.hpp

Print this page

        

@@ -49,14 +49,13 @@
 
   if (Devirtualizer::do_metadata(closure)) {
     Klass* klass = java_lang_Class::as_Klass_raw(obj);
     // We'll get NULL for primitive mirrors.
     if (klass != NULL) {
-      if (klass->is_instance_klass() &&
-          InstanceKlass::cast(klass)->is_unsafe_anonymous()) {
-        // An unsafe anonymous class doesn't have its own class loader, so
-        // when handling the java mirror for the class we need to make sure its class
+      if (klass->is_instance_klass() && klass->class_loader_data()->is_shortlived()) {
+        // A weak hidden or an unsafe anonymous class doesn't have its own class loader,
+        // so when handling the java mirror for the class we need to make sure its class
         // loader data is claimed, this is done by calling do_cld explicitly.
         // For non-anonymous classes the call to do_cld is made when the class
         // loader itself is handled.
         Devirtualizer::do_cld(closure, klass->class_loader_data());
       } else {
< prev index next >