< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page

        

*** 498,508 **** virtual oop protection_domain() const = 0; oop class_loader() const; ! virtual oop klass_holder() const { return class_loader(); } protected: virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS); virtual Klass* array_klass_impl(bool or_null, TRAPS); --- 498,512 ---- virtual oop protection_domain() const = 0; oop class_loader() const; ! // This loads the klass's 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. All uses of klass_holder need to apply the appropriate barriers, ! // except during GC. ! oop klass_holder() const { return class_loader_data()->holder_phantom(); } protected: virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS); virtual Klass* array_klass_impl(bool or_null, TRAPS);
*** 653,667 **** // Iff the class loader (or mirror for unsafe anonymous classes) is alive the // Klass is considered alive. This is safe to call before the CLD is marked as // unloading, and hence during concurrent class unloading. bool is_loader_alive() const { return class_loader_data()->is_alive(); } - // Load the klass's 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. - oop holder_phantom() const; - void clean_subklass(); static void clean_weak_klass_links(bool unloading_occurred, bool clean_alive_klasses = true); static void clean_subklass_tree() { clean_weak_klass_links(/*unloading_occurred*/ true , /* clean_alive_klasses */ false); --- 657,666 ----
< prev index next >