< prev index next >

src/hotspot/share/oops/klass.hpp

Access_GetLoadedClasses
     }
   }
 
   // java mirror
   oop java_mirror() const;
+  // Load the java_mirror as a phantom. This is useful when a weak Klass
+  // pointer has been "peeked" and then must be kept alive before it may
+  // be used safely. The Klass will be kept alive and not be unloaded due
+  // to concurrent marking.
+  virtual oop java_mirror_phantom();
   void set_java_mirror(Handle m);
 
   // Temporary mirror switch used by RedefineClasses
   // Both mirrors are on the ClassLoaderData::_handles list already so no
   // barriers are needed.

@@ -452,10 +457,15 virtual oop protection_domain() const = 0; oop class_loader() const; virtual oop klass_holder() const { return class_loader(); } + // Load the klass_holder as a phantom. This is useful when a weak Klass + // pointer has been "peeked" and then must be kept alive before it may + // be used safely. The Klass will be kept alive and not be unloaded due + // to concurrent marking. + virtual oop klass_holder_phantom(); protected: virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS); virtual Klass* array_klass_impl(bool or_null, TRAPS);
< prev index next >