< prev index next >

src/hotspot/share/classfile/systemDictionary.cpp

Print this page




1866       SymbolTable::do_check_concurrent_work();
1867     }
1868 
1869     {
1870       GCTraceTime(Debug, gc, phases) t("Dictionary", gc_timer);
1871       constraints()->purge_loader_constraints();
1872       resolution_errors()->purge_resolution_errors();
1873     }
1874   }
1875 
1876   {
1877     GCTraceTime(Debug, gc, phases) t("ProtectionDomainCacheTable", gc_timer);
1878     // Oops referenced by the protection domain cache table may get unreachable independently
1879     // of the class loader (eg. cached protection domain oops). So we need to
1880     // explicitly unlink them here.
1881     _pd_cache_table->unlink();
1882   }
1883 
1884   if (do_cleaning) {
1885     GCTraceTime(Debug, gc, phases) t("ResolvedMethodTable", gc_timer);
1886     ResolvedMethodTable::unlink();
1887   }
1888 
1889   return unloading_occurred;
1890 }
1891 
1892 void SystemDictionary::oops_do(OopClosure* f) {
1893   f->do_oop(&_java_system_loader);
1894   f->do_oop(&_java_platform_loader);
1895   f->do_oop(&_system_loader_lock_obj);
1896   CDS_ONLY(SystemDictionaryShared::oops_do(f);)
1897 
1898   // Visit extra methods
1899   invoke_method_table()->oops_do(f);
1900 }
1901 
1902 // CDS: scan and relocate all classes in the system dictionary.
1903 void SystemDictionary::classes_do(MetaspaceClosure* it) {
1904   ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(it);
1905 }
1906 




1866       SymbolTable::do_check_concurrent_work();
1867     }
1868 
1869     {
1870       GCTraceTime(Debug, gc, phases) t("Dictionary", gc_timer);
1871       constraints()->purge_loader_constraints();
1872       resolution_errors()->purge_resolution_errors();
1873     }
1874   }
1875 
1876   {
1877     GCTraceTime(Debug, gc, phases) t("ProtectionDomainCacheTable", gc_timer);
1878     // Oops referenced by the protection domain cache table may get unreachable independently
1879     // of the class loader (eg. cached protection domain oops). So we need to
1880     // explicitly unlink them here.
1881     _pd_cache_table->unlink();
1882   }
1883 
1884   if (do_cleaning) {
1885     GCTraceTime(Debug, gc, phases) t("ResolvedMethodTable", gc_timer);
1886     ResolvedMethodTable::trigger_cleanup();
1887   }
1888 
1889   return unloading_occurred;
1890 }
1891 
1892 void SystemDictionary::oops_do(OopClosure* f) {
1893   f->do_oop(&_java_system_loader);
1894   f->do_oop(&_java_platform_loader);
1895   f->do_oop(&_system_loader_lock_obj);
1896   CDS_ONLY(SystemDictionaryShared::oops_do(f);)
1897 
1898   // Visit extra methods
1899   invoke_method_table()->oops_do(f);
1900 }
1901 
1902 // CDS: scan and relocate all classes in the system dictionary.
1903 void SystemDictionary::classes_do(MetaspaceClosure* it) {
1904   ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(it);
1905 }
1906 


< prev index next >