hotspot/src/share/vm/gc/shared/generationSpec.cpp
changeset 31358 693058672cc6
parent 30764 fec48bf5a827
child 33212 906b3d079b13
equal deleted inserted replaced
31357:0cef600ba9b7 31358:693058672cc6
    34 #if INCLUDE_ALL_GCS
    34 #if INCLUDE_ALL_GCS
    35 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
    35 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
    36 #include "gc/cms/parNewGeneration.hpp"
    36 #include "gc/cms/parNewGeneration.hpp"
    37 #endif // INCLUDE_ALL_GCS
    37 #endif // INCLUDE_ALL_GCS
    38 
    38 
    39 Generation* GenerationSpec::init(ReservedSpace rs, int level,
    39 Generation* GenerationSpec::init(ReservedSpace rs, GenRemSet* remset) {
    40                                  GenRemSet* remset) {
       
    41   switch (name()) {
    40   switch (name()) {
    42     case Generation::DefNew:
    41     case Generation::DefNew:
    43       return new DefNewGeneration(rs, init_size(), level);
    42       return new DefNewGeneration(rs, init_size());
    44 
    43 
    45     case Generation::MarkSweepCompact:
    44     case Generation::MarkSweepCompact:
    46       return new TenuredGeneration(rs, init_size(), level, remset);
    45       return new TenuredGeneration(rs, init_size(), remset);
    47 
    46 
    48 #if INCLUDE_ALL_GCS
    47 #if INCLUDE_ALL_GCS
    49     case Generation::ParNew:
    48     case Generation::ParNew:
    50       return new ParNewGeneration(rs, init_size(), level);
    49       return new ParNewGeneration(rs, init_size());
    51 
    50 
    52     case Generation::ConcurrentMarkSweep: {
    51     case Generation::ConcurrentMarkSweep: {
    53       assert(UseConcMarkSweepGC, "UseConcMarkSweepGC should be set");
    52       assert(UseConcMarkSweepGC, "UseConcMarkSweepGC should be set");
    54       CardTableRS* ctrs = remset->as_CardTableRS();
    53       CardTableRS* ctrs = remset->as_CardTableRS();
    55       if (ctrs == NULL) {
    54       if (ctrs == NULL) {
    59       // The constructor creates the CMSCollector if needed,
    58       // The constructor creates the CMSCollector if needed,
    60       // else registers with an existing CMSCollector
    59       // else registers with an existing CMSCollector
    61 
    60 
    62       ConcurrentMarkSweepGeneration* g = NULL;
    61       ConcurrentMarkSweepGeneration* g = NULL;
    63       g = new ConcurrentMarkSweepGeneration(rs,
    62       g = new ConcurrentMarkSweepGeneration(rs,
    64                  init_size(), level, ctrs, UseCMSAdaptiveFreeLists,
    63                  init_size(), ctrs, UseCMSAdaptiveFreeLists,
    65                  (FreeBlockDictionary<FreeChunk>::DictionaryChoice)CMSDictionaryChoice);
    64                  (FreeBlockDictionary<FreeChunk>::DictionaryChoice)CMSDictionaryChoice);
    66 
    65 
    67       g->initialize_performance_counters();
    66       g->initialize_performance_counters();
    68 
    67 
    69       return g;
    68       return g;