src/hotspot/share/gc/parallel/psOldGen.cpp
changeset 49982 9042ffe5b7fe
parent 49594 898ef81cbc0e
child 53117 37930c6ba6d7
equal deleted inserted replaced
49981:bd0a95bec96b 49982:9042ffe5b7fe
   137 
   137 
   138   object_space()->initialize(cmr,
   138   object_space()->initialize(cmr,
   139                              SpaceDecorator::Clear,
   139                              SpaceDecorator::Clear,
   140                              SpaceDecorator::Mangle);
   140                              SpaceDecorator::Mangle);
   141 
   141 
       
   142 #if INCLUDE_SERIALGC
   142   _object_mark_sweep = new PSMarkSweepDecorator(_object_space, start_array(), MarkSweepDeadRatio);
   143   _object_mark_sweep = new PSMarkSweepDecorator(_object_space, start_array(), MarkSweepDeadRatio);
   143 
   144 
   144   if (_object_mark_sweep == NULL)
   145   if (_object_mark_sweep == NULL) {
   145     vm_exit_during_initialization("Could not complete allocation of old generation");
   146     vm_exit_during_initialization("Could not complete allocation of old generation");
       
   147   }
       
   148 #endif // INCLUDE_SERIALGC
   146 
   149 
   147   // Update the start_array
   150   // Update the start_array
   148   start_array()->set_covered_region(cmr);
   151   start_array()->set_covered_region(cmr);
   149 }
   152 }
   150 
   153 
   161 // reserved size is not 0.
   164 // reserved size is not 0.
   162 bool  PSOldGen::is_allocated() {
   165 bool  PSOldGen::is_allocated() {
   163   return virtual_space()->reserved_size() != 0;
   166   return virtual_space()->reserved_size() != 0;
   164 }
   167 }
   165 
   168 
       
   169 #if INCLUDE_SERIALGC
       
   170 
   166 void PSOldGen::precompact() {
   171 void PSOldGen::precompact() {
   167   ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
   172   ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
   168 
   173 
   169   // Reset start array first.
   174   // Reset start array first.
   170   start_array()->reset();
   175   start_array()->reset();
   180 }
   185 }
   181 
   186 
   182 void PSOldGen::compact() {
   187 void PSOldGen::compact() {
   183   object_mark_sweep()->compact(ZapUnusedHeapArea);
   188   object_mark_sweep()->compact(ZapUnusedHeapArea);
   184 }
   189 }
       
   190 
       
   191 #endif // INCLUDE_SERIALGC
   185 
   192 
   186 size_t PSOldGen::contiguous_available() const {
   193 size_t PSOldGen::contiguous_available() const {
   187   return object_space()->free_in_bytes() + virtual_space()->uncommitted_size();
   194   return object_space()->free_in_bytes() + virtual_space()->uncommitted_size();
   188 }
   195 }
   189 
   196