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

changeset 4333
442f942757c0
parent 4326
0f80645e9c26
child 4391
0b54ffe4c2d3
equal deleted inserted replaced
4327:eade6b2e4782 4333:442f942757c0
2077 // evacuation pause. 2077 // evacuation pause.
2078 clear_cset_fast_test(); 2078 clear_cset_fast_test();
2079 2079
2080 // Create the ConcurrentMark data structure and thread. 2080 // Create the ConcurrentMark data structure and thread.
2081 // (Must do this late, so that "max_regions" is defined.) 2081 // (Must do this late, so that "max_regions" is defined.)
2082 _cm = new ConcurrentMark(heap_rs, max_regions()); 2082 _cm = new ConcurrentMark(this, heap_rs);
2083 if (_cm == NULL || !_cm->completed_initialization()) {
2084 vm_shutdown_during_initialization("Could not create/initialize ConcurrentMark");
2085 return JNI_ENOMEM;
2086 }
2083 _cmThread = _cm->cmThread(); 2087 _cmThread = _cm->cmThread();
2084 2088
2085 // Initialize the from_card cache structure of HeapRegionRemSet. 2089 // Initialize the from_card cache structure of HeapRegionRemSet.
2086 HeapRegionRemSet::init_heap(max_regions()); 2090 HeapRegionRemSet::init_heap(max_regions());
2087 2091
2088 // Now expand into the initial heap size. 2092 // Now expand into the initial heap size.
2089 if (!expand(init_byte_size)) { 2093 if (!expand(init_byte_size)) {
2090 vm_exit_during_initialization("Failed to allocate initial heap."); 2094 vm_shutdown_during_initialization("Failed to allocate initial heap.");
2091 return JNI_ENOMEM; 2095 return JNI_ENOMEM;
2092 } 2096 }
2093 2097
2094 // Perform any initialization actions delegated to the policy. 2098 // Perform any initialization actions delegated to the policy.
2095 g1_policy()->init(); 2099 g1_policy()->init();

mercurial