369 370 void classes_do(KlassClosure* klass_closure); 371 Klass* klasses() { return _klasses; } 372 373 JNIMethodBlock* jmethod_ids() const { return _jmethod_ids; } 374 void set_jmethod_ids(JNIMethodBlock* new_block) { _jmethod_ids = new_block; } 375 376 void print() { print_on(tty); } 377 void print_on(outputStream* out) const PRODUCT_RETURN; 378 void print_value() { print_value_on(tty); } 379 void print_value_on(outputStream* out) const; 380 void verify(); 381 382 OopHandle add_handle(Handle h); 383 void remove_handle(OopHandle h); 384 void init_handle_locked(OopHandle& pd, Handle h); // used for concurrent access to ModuleEntry::_pd field 385 void add_class(Klass* k, bool publicize = true); 386 void remove_class(Klass* k); 387 bool contains_klass(Klass* k); 388 void record_dependency(const Klass* to); 389 PackageEntryTable* packages() { return _packages; } 390 ModuleEntry* unnamed_module() { return _unnamed_module; } 391 ModuleEntryTable* modules(); 392 bool modules_defined() { return (_modules != NULL); } 393 394 // Loaded class dictionary 395 Dictionary* dictionary() const { return _dictionary; } 396 397 void add_to_deallocate_list(Metadata* m); 398 399 static ClassLoaderData* class_loader_data(oop loader); 400 static ClassLoaderData* class_loader_data_or_null(oop loader); 401 static ClassLoaderData* anonymous_class_loader_data(Handle loader); 402 403 // Returns Klass* of associated class loader, or NULL if associated loader is 'bootstrap'. 404 // Also works if unloading. 405 Klass* class_loader_klass() const { return _class_loader_klass; } 406 407 // Returns the class loader's explict name as specified during 408 // construction or the class loader's qualified class name. | 369 370 void classes_do(KlassClosure* klass_closure); 371 Klass* klasses() { return _klasses; } 372 373 JNIMethodBlock* jmethod_ids() const { return _jmethod_ids; } 374 void set_jmethod_ids(JNIMethodBlock* new_block) { _jmethod_ids = new_block; } 375 376 void print() { print_on(tty); } 377 void print_on(outputStream* out) const PRODUCT_RETURN; 378 void print_value() { print_value_on(tty); } 379 void print_value_on(outputStream* out) const; 380 void verify(); 381 382 OopHandle add_handle(Handle h); 383 void remove_handle(OopHandle h); 384 void init_handle_locked(OopHandle& pd, Handle h); // used for concurrent access to ModuleEntry::_pd field 385 void add_class(Klass* k, bool publicize = true); 386 void remove_class(Klass* k); 387 bool contains_klass(Klass* k); 388 void record_dependency(const Klass* to); 389 void record_init_exception(OopHandle cls, Handle exception, TRAPS); 390 void throw_reinit_exception(OopHandle cls, TRAPS); 391 PackageEntryTable* packages() { return _packages; } 392 ModuleEntry* unnamed_module() { return _unnamed_module; } 393 ModuleEntryTable* modules(); 394 bool modules_defined() { return (_modules != NULL); } 395 396 // Loaded class dictionary 397 Dictionary* dictionary() const { return _dictionary; } 398 399 void add_to_deallocate_list(Metadata* m); 400 401 static ClassLoaderData* class_loader_data(oop loader); 402 static ClassLoaderData* class_loader_data_or_null(oop loader); 403 static ClassLoaderData* anonymous_class_loader_data(Handle loader); 404 405 // Returns Klass* of associated class loader, or NULL if associated loader is 'bootstrap'. 406 // Also works if unloading. 407 Klass* class_loader_klass() const { return _class_loader_klass; } 408 409 // Returns the class loader's explict name as specified during 410 // construction or the class loader's qualified class name. |