src/hotspot/share/gc/serial/genMarkSweep.cpp
changeset 54669 ad45b3802d4e
parent 54178 98e21d4da074
child 54786 ebf733a324d4
equal deleted inserted replaced
54668:0bda2308eded 54669:ad45b3802d4e
    54 #include "runtime/thread.inline.hpp"
    54 #include "runtime/thread.inline.hpp"
    55 #include "runtime/vmThread.hpp"
    55 #include "runtime/vmThread.hpp"
    56 #include "utilities/copy.hpp"
    56 #include "utilities/copy.hpp"
    57 #include "utilities/events.hpp"
    57 #include "utilities/events.hpp"
    58 #include "utilities/stack.inline.hpp"
    58 #include "utilities/stack.inline.hpp"
       
    59 #if INCLUDE_JVMCI
       
    60 #include "jvmci/jvmci.hpp"
       
    61 #endif
    59 
    62 
    60 void GenMarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, bool clear_all_softrefs) {
    63 void GenMarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, bool clear_all_softrefs) {
    61   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
    64   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
    62 
    65 
    63   GenCollectedHeap* gch = GenCollectedHeap::heap();
    66   GenCollectedHeap* gch = GenCollectedHeap::heap();
   231     // Unload nmethods.
   234     // Unload nmethods.
   232     CodeCache::do_unloading(&is_alive, purged_class);
   235     CodeCache::do_unloading(&is_alive, purged_class);
   233 
   236 
   234     // Prune dead klasses from subklass/sibling/implementor lists.
   237     // Prune dead klasses from subklass/sibling/implementor lists.
   235     Klass::clean_weak_klass_links(purged_class);
   238     Klass::clean_weak_klass_links(purged_class);
       
   239 
       
   240     // Clean JVMCI metadata handles.
       
   241     JVMCI_ONLY(JVMCI::do_unloading(purged_class));
   236   }
   242   }
   237 
   243 
   238   gc_tracer()->report_object_count_after_gc(&is_alive);
   244   gc_tracer()->report_object_count_after_gc(&is_alive);
   239 }
   245 }
   240 
   246