1747 // Note: anonymous classes are not in the SD. |
1750 // Note: anonymous classes are not in the SD. |
1748 bool SystemDictionary::do_unloading(BoolObjectClosure* is_alive, bool clean_alive) { |
1751 bool SystemDictionary::do_unloading(BoolObjectClosure* is_alive, bool clean_alive) { |
1749 // First, mark for unload all ClassLoaderData referencing a dead class loader. |
1752 // First, mark for unload all ClassLoaderData referencing a dead class loader. |
1750 bool unloading_occurred = ClassLoaderDataGraph::do_unloading(is_alive, clean_alive); |
1753 bool unloading_occurred = ClassLoaderDataGraph::do_unloading(is_alive, clean_alive); |
1751 if (unloading_occurred) { |
1754 if (unloading_occurred) { |
|
1755 JFR_ONLY(Jfr::on_unloading_classes();) |
1752 dictionary()->do_unloading(); |
1756 dictionary()->do_unloading(); |
1753 constraints()->purge_loader_constraints(); |
1757 constraints()->purge_loader_constraints(); |
1754 resolution_errors()->purge_resolution_errors(); |
1758 resolution_errors()->purge_resolution_errors(); |
1755 } |
1759 } |
1756 // Oops referenced by the system dictionary may get unreachable independently |
1760 // Oops referenced by the system dictionary may get unreachable independently |