src/hotspot/share/gc/parallel/psMarkSweep.cpp
changeset 53536 482109fae02b
parent 51978 4756af2308a1
child 53587 739eaf4ac4ad
equal deleted inserted replaced
53535:ce77e4d928f3 53536:482109fae02b
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   565     // Prune dead klasses from subklass/sibling/implementor lists.
   565     // Prune dead klasses from subklass/sibling/implementor lists.
   566     Klass::clean_weak_klass_links(purged_class);
   566     Klass::clean_weak_klass_links(purged_class);
   567   }
   567   }
   568 
   568 
   569   {
   569   {
   570     GCTraceTime(Debug, gc, phases) t("Scrub String Table", _gc_timer);
       
   571     // Delete entries for dead interned strings.
       
   572     StringTable::unlink(is_alive_closure());
       
   573   }
       
   574 
       
   575   {
       
   576     GCTraceTime(Debug, gc, phases) t("Scrub Symbol Table", _gc_timer);
   570     GCTraceTime(Debug, gc, phases) t("Scrub Symbol Table", _gc_timer);
   577     // Clean up unreferenced symbols in symbol table.
   571     // Clean up unreferenced symbols in symbol table.
   578     SymbolTable::unlink();
   572     SymbolTable::unlink();
   579   }
   573   }
   580 
   574 
   628   WeakProcessor::oops_do(adjust_pointer_closure());
   622   WeakProcessor::oops_do(adjust_pointer_closure());
   629 
   623 
   630   CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations);
   624   CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations);
   631   CodeCache::blobs_do(&adjust_from_blobs);
   625   CodeCache::blobs_do(&adjust_from_blobs);
   632   AOTLoader::oops_do(adjust_pointer_closure());
   626   AOTLoader::oops_do(adjust_pointer_closure());
   633   StringTable::oops_do(adjust_pointer_closure());
       
   634   ref_processor()->weak_oops_do(adjust_pointer_closure());
   627   ref_processor()->weak_oops_do(adjust_pointer_closure());
   635   PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());
   628   PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());
   636 
   629 
   637   adjust_marks();
   630   adjust_marks();
   638 
   631