equal
deleted
inserted
replaced
1688 }; |
1688 }; |
1689 #endif |
1689 #endif |
1690 |
1690 |
1691 // Assumes classes in the SystemDictionary are only unloaded at a safepoint |
1691 // Assumes classes in the SystemDictionary are only unloaded at a safepoint |
1692 // Note: anonymous classes are not in the SD. |
1692 // Note: anonymous classes are not in the SD. |
1693 bool SystemDictionary::do_unloading(BoolObjectClosure* is_alive) { |
1693 bool SystemDictionary::do_unloading(BoolObjectClosure* is_alive, bool clean_alive) { |
1694 // First, mark for unload all ClassLoaderData referencing a dead class loader. |
1694 // First, mark for unload all ClassLoaderData referencing a dead class loader. |
1695 bool unloading_occurred = ClassLoaderDataGraph::do_unloading(is_alive); |
1695 bool unloading_occurred = ClassLoaderDataGraph::do_unloading(is_alive, clean_alive); |
1696 if (unloading_occurred) { |
1696 if (unloading_occurred) { |
1697 dictionary()->do_unloading(); |
1697 dictionary()->do_unloading(); |
1698 constraints()->purge_loader_constraints(); |
1698 constraints()->purge_loader_constraints(); |
1699 resolution_errors()->purge_resolution_errors(); |
1699 resolution_errors()->purge_resolution_errors(); |
1700 } |
1700 } |