src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

Print this page

        

@@ -4362,12 +4362,10 @@
     _dcq(&g1h->dirty_card_queue_set()),
     _ct_bs((CardTableModRefBS*)_g1h->barrier_set()),
     _g1_rem(g1h->g1_rem_set()),
     _hash_seed(17), _queue_num(queue_num),
     _term_attempts(0),
-    _surviving_alloc_buffer(g1h->desired_plab_sz(GCAllocForSurvived)),
-    _tenured_alloc_buffer(g1h->desired_plab_sz(GCAllocForTenured)),
     _age_table(false),
     _strong_roots_time(0), _term_time(0),
     _alloc_buffer_waste(0), _undo_waste(0) {
   // we allocate G1YoungSurvRateNumRegions plus one entries, since
   // we "sacrifice" entry 0 to keep track of surviving bytes for

@@ -4383,12 +4381,15 @@
     vm_exit_out_of_memory(array_length * sizeof(size_t),
                           "Not enough space for young surv histo.");
   _surviving_young_words = _surviving_young_words_base + PADDING_ELEM_NUM;
   memset(_surviving_young_words, 0, (size_t) real_length * sizeof(size_t));
 
-  _alloc_buffers[GCAllocForSurvived] = &_surviving_alloc_buffer;
-  _alloc_buffers[GCAllocForTenured]  = &_tenured_alloc_buffer;
+  for (int ap = 0; ap < GCAllocPurposeCount; ++ap)
+    for (int pr = 0; pr < GCAllocPriorityCount; ++pr) {
+      _alloc_buffers[buf_idx(ap, pr)] =
+        new G1ParGCAllocBuffer(g1h->desired_plab_sz(GCAllocPurpose(ap)));
+    }
 
   _start = os::elapsedTime();
 }
 
 void