< prev index next >

src/share/vm/memory/genCollectedHeap.cpp

Print this page




 101   guarantee(HeapWordSize == wordSize, "HeapWordSize must equal wordSize");
 102 
 103   // Allocate space for the heap.
 104 
 105   char* heap_address;
 106   ReservedSpace heap_rs;
 107 
 108   size_t heap_alignment = collector_policy()->heap_alignment();
 109 
 110   heap_address = allocate(heap_alignment, &heap_rs);
 111 
 112   if (!heap_rs.is_reserved()) {
 113     vm_shutdown_during_initialization(
 114       "Could not reserve enough space for object heap");
 115     return JNI_ENOMEM;
 116   }
 117 
 118   initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
 119 
 120   _rem_set = collector_policy()->create_rem_set(reserved_region());
 121   _barrier_set = rem_set()->bs();
 122   oopDesc::set_bs(_barrier_set);
 123 
 124   _gch = this;
 125 
 126   ReservedSpace young_rs = heap_rs.first_part(gen_policy()->young_gen_spec()->max_size(), false, false);
 127   _young_gen = gen_policy()->young_gen_spec()->init(young_rs, 0, rem_set());
 128   heap_rs = heap_rs.last_part(gen_policy()->young_gen_spec()->max_size());
 129 
 130   ReservedSpace old_rs = heap_rs.first_part(gen_policy()->old_gen_spec()->max_size(), false, false);
 131   _old_gen = gen_policy()->old_gen_spec()->init(old_rs, 1, rem_set());
 132   clear_incremental_collection_failed();
 133 
 134 #if INCLUDE_ALL_GCS
 135   // If we are running CMS, create the collector responsible
 136   // for collecting the CMS generations.
 137   if (collector_policy()->is_concurrent_mark_sweep_policy()) {
 138     bool success = create_cms_collector();
 139     if (!success) return JNI_ENOMEM;
 140   }
 141 #endif // INCLUDE_ALL_GCS
 142 




 101   guarantee(HeapWordSize == wordSize, "HeapWordSize must equal wordSize");
 102 
 103   // Allocate space for the heap.
 104 
 105   char* heap_address;
 106   ReservedSpace heap_rs;
 107 
 108   size_t heap_alignment = collector_policy()->heap_alignment();
 109 
 110   heap_address = allocate(heap_alignment, &heap_rs);
 111 
 112   if (!heap_rs.is_reserved()) {
 113     vm_shutdown_during_initialization(
 114       "Could not reserve enough space for object heap");
 115     return JNI_ENOMEM;
 116   }
 117 
 118   initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
 119 
 120   _rem_set = collector_policy()->create_rem_set(reserved_region());
 121   set_barrier_set(rem_set()->bs());

 122 
 123   _gch = this;
 124 
 125   ReservedSpace young_rs = heap_rs.first_part(gen_policy()->young_gen_spec()->max_size(), false, false);
 126   _young_gen = gen_policy()->young_gen_spec()->init(young_rs, 0, rem_set());
 127   heap_rs = heap_rs.last_part(gen_policy()->young_gen_spec()->max_size());
 128 
 129   ReservedSpace old_rs = heap_rs.first_part(gen_policy()->old_gen_spec()->max_size(), false, false);
 130   _old_gen = gen_policy()->old_gen_spec()->init(old_rs, 1, rem_set());
 131   clear_incremental_collection_failed();
 132 
 133 #if INCLUDE_ALL_GCS
 134   // If we are running CMS, create the collector responsible
 135   // for collecting the CMS generations.
 136   if (collector_policy()->is_concurrent_mark_sweep_policy()) {
 137     bool success = create_cms_collector();
 138     if (!success) return JNI_ENOMEM;
 139   }
 140 #endif // INCLUDE_ALL_GCS
 141 


< prev index next >