< prev index next >

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

Print this page




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




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


< prev index next >