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
|