288 void unload();
289 bool keep_alive() const { return _keep_alive > 0; }
290
291 oop holder_phantom() const;
292 void classes_do(void f(Klass*));
293 void loaded_classes_do(KlassClosure* klass_closure);
294 void classes_do(void f(InstanceKlass*));
295 void methods_do(void f(Method*));
296 void modules_do(void f(ModuleEntry*));
297 void packages_do(void f(PackageEntry*));
298
299 // Deallocate free list during class unloading.
300 void free_deallocate_list(); // for the classes that are not unloaded
301 void unload_deallocate_list(); // for the classes that are unloaded
302
303 // Allocate out of this class loader data
304 MetaWord* allocate(size_t size);
305
306 Dictionary* create_dictionary();
307
308 void initialize_name_and_klass(Handle class_loader);
309 public:
310 // GC interface.
311 void clear_claimed() { _claimed = 0; }
312 bool claimed() const { return _claimed == 1; }
313 bool claim();
314
315 bool is_alive() const;
316
317 // Accessors
318 ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; }
319
320 static ClassLoaderData* the_null_class_loader_data() {
321 return _the_null_class_loader_data;
322 }
323
324 Mutex* metaspace_lock() const { return _metaspace_lock; }
325
326 bool is_anonymous() const { return _is_anonymous; }
327
328 static void init_null_class_loader_data();
|
288 void unload();
289 bool keep_alive() const { return _keep_alive > 0; }
290
291 oop holder_phantom() const;
292 void classes_do(void f(Klass*));
293 void loaded_classes_do(KlassClosure* klass_closure);
294 void classes_do(void f(InstanceKlass*));
295 void methods_do(void f(Method*));
296 void modules_do(void f(ModuleEntry*));
297 void packages_do(void f(PackageEntry*));
298
299 // Deallocate free list during class unloading.
300 void free_deallocate_list(); // for the classes that are not unloaded
301 void unload_deallocate_list(); // for the classes that are unloaded
302
303 // Allocate out of this class loader data
304 MetaWord* allocate(size_t size);
305
306 Dictionary* create_dictionary();
307
308 void initialize_name(Handle class_loader);
309 public:
310 // GC interface.
311 void clear_claimed() { _claimed = 0; }
312 bool claimed() const { return _claimed == 1; }
313 bool claim();
314
315 bool is_alive() const;
316
317 // Accessors
318 ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; }
319
320 static ClassLoaderData* the_null_class_loader_data() {
321 return _the_null_class_loader_data;
322 }
323
324 Mutex* metaspace_lock() const { return _metaspace_lock; }
325
326 bool is_anonymous() const { return _is_anonymous; }
327
328 static void init_null_class_loader_data();
|