hotspot/src/share/vm/memory/genCollectedHeap.cpp
changeset 6985 e9364ec299ac
parent 6759 67b1a69ef5aa
child 7397 5b173b4ca846
equal deleted inserted replaced
6984:c6718f921eb6 6985:e9364ec299ac
   140     _gens[i] = _gen_specs[i]->init(this_rs, i, rem_set());
   140     _gens[i] = _gen_specs[i]->init(this_rs, i, rem_set());
   141     heap_rs = heap_rs.last_part(_gen_specs[i]->max_size());
   141     heap_rs = heap_rs.last_part(_gen_specs[i]->max_size());
   142   }
   142   }
   143   _perm_gen = perm_gen_spec->init(heap_rs, PermSize, rem_set());
   143   _perm_gen = perm_gen_spec->init(heap_rs, PermSize, rem_set());
   144 
   144 
   145   clear_incremental_collection_will_fail();
   145   clear_incremental_collection_failed();
   146   clear_last_incremental_collection_failed();
       
   147 
   146 
   148 #ifndef SERIALGC
   147 #ifndef SERIALGC
   149   // If we are running CMS, create the collector responsible
   148   // If we are running CMS, create the collector responsible
   150   // for collecting the CMS generations.
   149   // for collecting the CMS generations.
   151   if (collector_policy()->is_concurrent_mark_sweep_policy()) {
   150   if (collector_policy()->is_concurrent_mark_sweep_policy()) {
  1345   }
  1344   }
  1346   GenGCEpilogueClosure(bool full) : _full(full) {};
  1345   GenGCEpilogueClosure(bool full) : _full(full) {};
  1347 };
  1346 };
  1348 
  1347 
  1349 void GenCollectedHeap::gc_epilogue(bool full) {
  1348 void GenCollectedHeap::gc_epilogue(bool full) {
  1350   // Remember if a partial collection of the heap failed, and
       
  1351   // we did a complete collection.
       
  1352   if (full && incremental_collection_will_fail()) {
       
  1353     set_last_incremental_collection_failed();
       
  1354   } else {
       
  1355     clear_last_incremental_collection_failed();
       
  1356   }
       
  1357   // Clear the flag, if set; the generation gc_epilogues will set the
       
  1358   // flag again if the condition persists despite the collection.
       
  1359   clear_incremental_collection_will_fail();
       
  1360 
       
  1361 #ifdef COMPILER2
  1349 #ifdef COMPILER2
  1362   assert(DerivedPointerTable::is_empty(), "derived pointer present");
  1350   assert(DerivedPointerTable::is_empty(), "derived pointer present");
  1363   size_t actual_gap = pointer_delta((HeapWord*) (max_uintx-3), *(end_addr()));
  1351   size_t actual_gap = pointer_delta((HeapWord*) (max_uintx-3), *(end_addr()));
  1364   guarantee(actual_gap > (size_t)FastAllocateSizeLimit, "inline allocation wraps");
  1352   guarantee(actual_gap > (size_t)FastAllocateSizeLimit, "inline allocation wraps");
  1365 #endif /* COMPILER2 */
  1353 #endif /* COMPILER2 */