< prev index next >

src/share/vm/classfile/classLoaderData.hpp

Print this page
rev 12906 : [mq]: gc_interface


 292     _the_null_class_loader_data = new ClassLoaderData(Handle(), false, Dependencies());
 293     ClassLoaderDataGraph::_head = _the_null_class_loader_data;
 294     assert(_the_null_class_loader_data->is_the_null_class_loader_data(), "Must be");
 295     if (DumpSharedSpaces) {
 296       _the_null_class_loader_data->initialize_shared_metaspaces();
 297     }
 298   }
 299 
 300   bool is_the_null_class_loader_data() const {
 301     return this == _the_null_class_loader_data;
 302   }
 303   bool is_system_class_loader_data() const;
 304   bool is_platform_class_loader_data() const;
 305   bool is_builtin_class_loader_data() const;
 306 
 307   // The Metaspace is created lazily so may be NULL.  This
 308   // method will allocate a Metaspace if needed.
 309   Metaspace* metaspace_non_null();
 310 
 311   oop class_loader() const      { return _class_loader; }

 312 
 313   // The object the GC is using to keep this ClassLoaderData alive.
 314   oop keep_alive_object() const;
 315 
 316   // Returns true if this class loader data is for a loader going away.
 317   bool is_unloading() const     {
 318     assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded");
 319     return _unloading;
 320   }
 321 
 322   // Used to refcount an anonymous class's CLD in order to
 323   // indicate their aliveness without a keep_alive_object().
 324   void inc_keep_alive();
 325   void dec_keep_alive();
 326 
 327   inline unsigned int identity_hash() const;
 328 
 329   // Used when tracing from klasses.
 330   void oops_do(OopClosure* f, KlassClosure* klass_closure, bool must_claim);
 331 




 292     _the_null_class_loader_data = new ClassLoaderData(Handle(), false, Dependencies());
 293     ClassLoaderDataGraph::_head = _the_null_class_loader_data;
 294     assert(_the_null_class_loader_data->is_the_null_class_loader_data(), "Must be");
 295     if (DumpSharedSpaces) {
 296       _the_null_class_loader_data->initialize_shared_metaspaces();
 297     }
 298   }
 299 
 300   bool is_the_null_class_loader_data() const {
 301     return this == _the_null_class_loader_data;
 302   }
 303   bool is_system_class_loader_data() const;
 304   bool is_platform_class_loader_data() const;
 305   bool is_builtin_class_loader_data() const;
 306 
 307   // The Metaspace is created lazily so may be NULL.  This
 308   // method will allocate a Metaspace if needed.
 309   Metaspace* metaspace_non_null();
 310 
 311   oop class_loader() const      { return _class_loader; }
 312   oop* class_loader_addr()      { return &_class_loader; }
 313 
 314   // The object the GC is using to keep this ClassLoaderData alive.
 315   oop keep_alive_object() const;
 316 
 317   // Returns true if this class loader data is for a loader going away.
 318   bool is_unloading() const     {
 319     assert(!(is_the_null_class_loader_data() && _unloading), "The null class loader can never be unloaded");
 320     return _unloading;
 321   }
 322 
 323   // Used to refcount an anonymous class's CLD in order to
 324   // indicate their aliveness without a keep_alive_object().
 325   void inc_keep_alive();
 326   void dec_keep_alive();
 327 
 328   inline unsigned int identity_hash() const;
 329 
 330   // Used when tracing from klasses.
 331   void oops_do(OopClosure* f, KlassClosure* klass_closure, bool must_claim);
 332 


< prev index next >