< prev index next >

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

Print this page

        

*** 885,900 **** // Fill the memory below the allocated range with dummy object(s), // if the region bottom does not match the range start, or if the previous // range ended within the same G1 region, and there is a gap. if (start_address != bottom_address) { size_t fill_size = pointer_delta(start_address, bottom_address); ! G1CollectedHeap::fill_with_objects(bottom_address, fill_size); increase_used(fill_size * HeapWordSize); } } } inline HeapWord* G1CollectedHeap::attempt_allocation(size_t word_size, uint* gc_count_before_ret, uint* gclocker_retry_count_ret) { assert_heap_not_locked_and_not_at_safepoint(); assert(!is_humongous(word_size), "attempt_allocation() should not " --- 885,910 ---- // Fill the memory below the allocated range with dummy object(s), // if the region bottom does not match the range start, or if the previous // range ended within the same G1 region, and there is a gap. if (start_address != bottom_address) { size_t fill_size = pointer_delta(start_address, bottom_address); ! fill_with_non_humongous_objects(bottom_address, fill_size); increase_used(fill_size * HeapWordSize); } } } + void G1CollectedHeap::fill_with_non_humongous_objects(HeapWord* start, size_t words, bool zap) + { + size_t prev_filler_array_max_size = _filler_array_max_size; + _filler_array_max_size = _humongous_object_threshold_in_words; + + CollectedHeap::fill_with_objects(start, words); + + _filler_array_max_size = prev_filler_array_max_size; + } + inline HeapWord* G1CollectedHeap::attempt_allocation(size_t word_size, uint* gc_count_before_ret, uint* gclocker_retry_count_ret) { assert_heap_not_locked_and_not_at_safepoint(); assert(!is_humongous(word_size), "attempt_allocation() should not "
*** 1851,1864 **** _workers->initialize_workers(); _allocator = G1Allocator::create_allocator(this); _humongous_object_threshold_in_words = humongous_threshold_for(HeapRegion::GrainWords); - // Override the default _filler_array_max_size so that no humongous filler - // objects are created. - _filler_array_max_size = _humongous_object_threshold_in_words; - uint n_queues = ParallelGCThreads; _task_queues = new RefToScanQueueSet(n_queues); uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets(); assert(n_rem_sets > 0, "Invariant."); --- 1861,1870 ----
< prev index next >