< prev index next >

src/share/vm/gc/parallel/psParallelCompact.cpp

Print this page




2152 
2153   PSParallelCompact::AdjustPointerClosure oop_closure(cm);
2154   PSParallelCompact::AdjustKlassClosure klass_closure(cm);
2155 
2156   // General strong roots.
2157   Universe::oops_do(&oop_closure);
2158   JNIHandles::oops_do(&oop_closure);   // Global (strong) JNI handles
2159   Threads::oops_do(&oop_closure, NULL);
2160   ObjectSynchronizer::oops_do(&oop_closure);
2161   FlatProfiler::oops_do(&oop_closure);
2162   Management::oops_do(&oop_closure);
2163   JvmtiExport::oops_do(&oop_closure);
2164   SystemDictionary::oops_do(&oop_closure);
2165   ClassLoaderDataGraph::oops_do(&oop_closure, &klass_closure, true);
2166 
2167   // Now adjust pointers in remaining weak roots.  (All of which should
2168   // have been cleared if they pointed to non-surviving objects.)
2169   // Global (weak) JNI handles
2170   JNIHandles::weak_oops_do(&oop_closure);
2171 


2172   CodeBlobToOopClosure adjust_from_blobs(&oop_closure, CodeBlobToOopClosure::FixRelocations);
2173   CodeCache::blobs_do(&adjust_from_blobs);
2174   AOTLoader::oops_do(&oop_closure);
2175   StringTable::oops_do(&oop_closure);
2176   ref_processor()->weak_oops_do(&oop_closure);
2177   // Roots were visited so references into the young gen in roots
2178   // may have been scanned.  Process them also.
2179   // Should the reference processor have a span that excludes
2180   // young gen objects?
2181   PSScavenge::reference_processor()->weak_oops_do(&oop_closure);
2182 }
2183 
2184 // Helper class to print 8 region numbers per line and then print the total at the end.
2185 class FillableRegionLogger : public StackObj {
2186 private:
2187   Log(gc, compaction) log;
2188   static const int LineLength = 8;
2189   size_t _regions[LineLength];
2190   int _next_index;
2191   bool _enabled;




2152 
2153   PSParallelCompact::AdjustPointerClosure oop_closure(cm);
2154   PSParallelCompact::AdjustKlassClosure klass_closure(cm);
2155 
2156   // General strong roots.
2157   Universe::oops_do(&oop_closure);
2158   JNIHandles::oops_do(&oop_closure);   // Global (strong) JNI handles
2159   Threads::oops_do(&oop_closure, NULL);
2160   ObjectSynchronizer::oops_do(&oop_closure);
2161   FlatProfiler::oops_do(&oop_closure);
2162   Management::oops_do(&oop_closure);
2163   JvmtiExport::oops_do(&oop_closure);
2164   SystemDictionary::oops_do(&oop_closure);
2165   ClassLoaderDataGraph::oops_do(&oop_closure, &klass_closure, true);
2166 
2167   // Now adjust pointers in remaining weak roots.  (All of which should
2168   // have been cleared if they pointed to non-surviving objects.)
2169   // Global (weak) JNI handles
2170   JNIHandles::weak_oops_do(&oop_closure);
2171 
2172   HeapMonitoring::do_weak_oops(&oop_closure);
2173 
2174   CodeBlobToOopClosure adjust_from_blobs(&oop_closure, CodeBlobToOopClosure::FixRelocations);
2175   CodeCache::blobs_do(&adjust_from_blobs);
2176   AOTLoader::oops_do(&oop_closure);
2177   StringTable::oops_do(&oop_closure);
2178   ref_processor()->weak_oops_do(&oop_closure);
2179   // Roots were visited so references into the young gen in roots
2180   // may have been scanned.  Process them also.
2181   // Should the reference processor have a span that excludes
2182   // young gen objects?
2183   PSScavenge::reference_processor()->weak_oops_do(&oop_closure);
2184 }
2185 
2186 // Helper class to print 8 region numbers per line and then print the total at the end.
2187 class FillableRegionLogger : public StackObj {
2188 private:
2189   Log(gc, compaction) log;
2190   static const int LineLength = 8;
2191   size_t _regions[LineLength];
2192   int _next_index;
2193   bool _enabled;


< prev index next >