< prev index next >

src/hotspot/share/gc/g1/g1FullCollector.cpp

Print this page

        

@@ -62,27 +62,27 @@
   DerivedPointerTable::update_pointers();
 #endif
 }
 
 G1CMBitMap* G1FullCollector::mark_bitmap() {
-  return heap()->concurrent_mark()->next_mark_bitmap();
+  return _heap->concurrent_mark()->next_mark_bitmap();
 }
 
 ReferenceProcessor* G1FullCollector::reference_processor() {
-  return heap()->ref_processor_stw();
+  return _heap->ref_processor_stw();
 }
 
 G1FullCollector::G1FullCollector(G1CollectedHeap* heap, bool explicit_gc, bool clear_soft_refs) :
     _heap(heap),
     _scope(explicit_gc, clear_soft_refs),
-    _num_workers(_heap->workers()->active_workers()),
+    _num_workers(heap->workers()->active_workers()),
     _oop_queue_set(_num_workers),
     _array_queue_set(_num_workers),
     _preserved_marks_set(true),
     _serial_compaction_point(),
-    _is_alive(mark_bitmap()),
-    _is_alive_mutator(reference_processor(), &_is_alive) {
+    _is_alive(heap->concurrent_mark()->next_mark_bitmap()),
+    _is_alive_mutator(heap->ref_processor_stw(), &_is_alive) {
   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
 
   _preserved_marks_set.init(_num_workers);
   _markers = NEW_C_HEAP_ARRAY(G1FullGCMarker*, _num_workers, mtGC);
   _compaction_points = NEW_C_HEAP_ARRAY(G1FullGCCompactionPoint*, _num_workers, mtGC);

@@ -102,20 +102,20 @@
   FREE_C_HEAP_ARRAY(G1FullGCMarker*, _markers);
   FREE_C_HEAP_ARRAY(G1FullGCCompactionPoint*, _compaction_points);
 }
 
 void G1FullCollector::prepare_collection() {
-  heap()->g1_policy()->record_full_collection_start();
+  _heap->g1_policy()->record_full_collection_start();
 
-  heap()->print_heap_before_gc();
-  heap()->print_heap_regions();
+  _heap->print_heap_before_gc();
+  _heap->print_heap_regions();
 
-  heap()->abort_concurrent_cycle();
-  heap()->verify_before_full_collection(scope()->is_explicit_gc());
+  _heap->abort_concurrent_cycle();
+  _heap->verify_before_full_collection(scope()->is_explicit_gc());
 
-  heap()->gc_prologue(true);
-  heap()->prepare_heap_for_full_collection();
+  _heap->gc_prologue(true);
+  _heap->prepare_heap_for_full_collection();
 
   reference_processor()->enable_discovery();
   reference_processor()->setup_policy(scope()->should_clear_soft_refs());
 
   // When collecting the permanent generation Method*s may be moving,

@@ -154,18 +154,18 @@
 
   BiasedLocking::restore_marks();
   CodeCache::gc_epilogue();
   JvmtiExport::gc_epilogue();
 
-  heap()->prepare_heap_for_mutators();
+  _heap->prepare_heap_for_mutators();
 
-  heap()->g1_policy()->record_full_collection_end();
-  heap()->gc_epilogue(true);
+  _heap->g1_policy()->record_full_collection_end();
+  _heap->gc_epilogue(true);
 
-  heap()->verify_after_full_collection();
+  _heap->verify_after_full_collection();
 
-  heap()->print_heap_after_full_collection(scope()->heap_transition());
+  _heap->print_heap_after_full_collection(scope()->heap_transition());
 }
 
 void G1FullCollector::phase1_mark_live_objects() {
   // Recursively traverse all live objects and mark them.
   GCTraceTime(Info, gc, phases) info("Phase 1: Mark live objects", scope()->timer());

@@ -187,15 +187,15 @@
   // Class unloading and cleanup.
   if (ClassUnloading) {
     GCTraceTime(Debug, gc, phases) debug("Phase 1: Class Unloading and Cleanup", scope()->timer());
     // Unload classes and purge the SystemDictionary.
     bool purged_class = SystemDictionary::do_unloading(&_is_alive, scope()->timer());
-    G1CollectedHeap::heap()->complete_cleaning(&_is_alive, purged_class);
+    _heap->complete_cleaning(&_is_alive, purged_class);
   } else {
     GCTraceTime(Debug, gc, phases) debug("Phase 1: String and Symbol Tables Cleanup", scope()->timer());
     // If no class unloading just clean out strings and symbols.
-    G1CollectedHeap::heap()->partial_cleaning(&_is_alive, true, true, G1StringDedup::is_enabled());
+    _heap->partial_cleaning(&_is_alive, true, true, G1StringDedup::is_enabled());
   }
 
   scope()->tracer()->report_object_count_after_gc(&_is_alive);
 }
 

@@ -233,17 +233,17 @@
     task.serial_compaction();
   }
 }
 
 void G1FullCollector::restore_marks() {
-  SharedRestorePreservedMarksTaskExecutor task_executor(G1CollectedHeap::heap()->workers());
+  SharedRestorePreservedMarksTaskExecutor task_executor(_heap->workers());
   _preserved_marks_set.restore(&task_executor);
   _preserved_marks_set.reclaim();
 }
 
 void G1FullCollector::run_task(AbstractGangTask* task) {
-  G1CollectedHeap::heap()->workers()->run_task(task, _num_workers);
+  _heap->workers()->run_task(task, _num_workers);
 }
 
 void G1FullCollector::verify_after_marking() {
   if (!VerifyDuringGC) {
     //Only do verification if VerifyDuringGC is set.

@@ -252,11 +252,11 @@
 
   HandleMark hm;  // handle scope
 #if COMPILER2_OR_JVMCI
   DerivedPointerTableDeactivate dpt_deact;
 #endif
-  G1CollectedHeap::heap()->prepare_for_verify();
+  _heap->prepare_for_verify();
   // Note: we can verify only the heap here. When an object is
   // marked, the previous value of the mark word (including
   // identity hash values, ages, etc) is preserved, and the mark
   // word is set to markOop::marked_value - effectively removing
   // any hash values from the mark word. These hash values are

@@ -264,7 +264,7 @@
   // from the mark word can make verification of the dictionaries
   // fail. At the end of the GC, the original mark word values
   // (including hash values) are restored to the appropriate
   // objects.
   GCTraceTime(Info, gc, verify)("During GC (full)");
-  G1CollectedHeap::heap()->verify(VerifyOption_G1UseFullMarking);
+  _heap->verify(VerifyOption_G1UseFullMarking);
 }
< prev index next >