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;
|