< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page




 267   // Note that this is only safe after the GC has computed if the CLD is
 268   // unloading or not. In concurrent contexts where there are no such
 269   // guarantees, is_alive() should be used instead.
 270   bool is_unloading() const     {
 271     assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded");
 272     return _unloading;
 273   }
 274 
 275   // Used to refcount a non-strong hidden class's or unsafe anonymous class's CLD in order to
 276   // indicate their aliveness.
 277   void inc_keep_alive();
 278   void dec_keep_alive();
 279 
 280   void initialize_holder(Handle holder);
 281 
 282   void oops_do(OopClosure* f, int claim_value, bool clear_modified_oops = false);
 283 
 284   void classes_do(KlassClosure* klass_closure);
 285   Klass* klasses() { return _klasses; }
 286 



 287   JNIMethodBlock* jmethod_ids() const              { return _jmethod_ids; }
 288   void set_jmethod_ids(JNIMethodBlock* new_block)  { _jmethod_ids = new_block; }
 289 
 290   void print() const;
 291   void print_on(outputStream* out) const PRODUCT_RETURN;
 292   void print_value() const;
 293   void print_value_on(outputStream* out) const;
 294   void verify();
 295 
 296   OopHandle add_handle(Handle h);
 297   void remove_handle(OopHandle h);
 298   void init_handle_locked(OopHandle& pd, Handle h);  // used for concurrent access to ModuleEntry::_pd field
 299   void add_class(Klass* k, bool publicize = true);
 300   void remove_class(Klass* k);
 301   bool contains_klass(Klass* k);
 302   void record_dependency(const Klass* to);
 303   PackageEntryTable* packages() { return _packages; }
 304   ModuleEntry* unnamed_module() { return _unnamed_module; }
 305   ModuleEntryTable* modules();
 306   bool modules_defined() { return (_modules != NULL); }




 267   // Note that this is only safe after the GC has computed if the CLD is
 268   // unloading or not. In concurrent contexts where there are no such
 269   // guarantees, is_alive() should be used instead.
 270   bool is_unloading() const     {
 271     assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded");
 272     return _unloading;
 273   }
 274 
 275   // Used to refcount a non-strong hidden class's or unsafe anonymous class's CLD in order to
 276   // indicate their aliveness.
 277   void inc_keep_alive();
 278   void dec_keep_alive();
 279 
 280   void initialize_holder(Handle holder);
 281 
 282   void oops_do(OopClosure* f, int claim_value, bool clear_modified_oops = false);
 283 
 284   void classes_do(KlassClosure* klass_closure);
 285   Klass* klasses() { return _klasses; }
 286 
 287   // replace the existing class with k, return the old class.
 288   InstanceKlass* replace_class(Symbol* class_name, InstanceKlass* k);
 289 
 290   JNIMethodBlock* jmethod_ids() const              { return _jmethod_ids; }
 291   void set_jmethod_ids(JNIMethodBlock* new_block)  { _jmethod_ids = new_block; }
 292 
 293   void print() const;
 294   void print_on(outputStream* out) const PRODUCT_RETURN;
 295   void print_value() const;
 296   void print_value_on(outputStream* out) const;
 297   void verify();
 298 
 299   OopHandle add_handle(Handle h);
 300   void remove_handle(OopHandle h);
 301   void init_handle_locked(OopHandle& pd, Handle h);  // used for concurrent access to ModuleEntry::_pd field
 302   void add_class(Klass* k, bool publicize = true);
 303   void remove_class(Klass* k);
 304   bool contains_klass(Klass* k);
 305   void record_dependency(const Klass* to);
 306   PackageEntryTable* packages() { return _packages; }
 307   ModuleEntry* unnamed_module() { return _unnamed_module; }
 308   ModuleEntryTable* modules();
 309   bool modules_defined() { return (_modules != NULL); }


< prev index next >