483 oop obj, 484 size_t obj_size); 485 486 487 private: 488 // Return true if an allocation should be attempted in the older generation 489 // if it fails in the younger generation. Return false, otherwise. 490 bool should_try_older_generation_allocation(size_t word_size) const; 491 492 // Try to allocate space by expanding the heap. 493 HeapWord* expand_heap_and_allocate(size_t size, bool is_tlab); 494 495 HeapWord* mem_allocate_work(size_t size, 496 bool is_tlab, 497 bool* gc_overhead_limit_was_exceeded); 498 499 // Override 500 void check_for_non_bad_heap_word_value(HeapWord* addr, 501 size_t size) PRODUCT_RETURN; 502 503 // For use by mark-sweep. As implemented, mark-sweep-compact is global 504 // in an essential way: compaction is performed across generations, by 505 // iterating over spaces. 506 void prepare_for_compaction(); 507 508 // Perform a full collection of the generations up to and including max_generation. 509 // This is the low level interface used by the public versions of 510 // collect() and collect_locked(). Caller holds the Heap_lock on entry. 511 void collect_locked(GCCause::Cause cause, GenerationType max_generation); 512 513 // Save the tops of the spaces in all generations 514 void record_gen_tops_before_GC() PRODUCT_RETURN; 515 }; 516 517 #endif // SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP | 483 oop obj, 484 size_t obj_size); 485 486 487 private: 488 // Return true if an allocation should be attempted in the older generation 489 // if it fails in the younger generation. Return false, otherwise. 490 bool should_try_older_generation_allocation(size_t word_size) const; 491 492 // Try to allocate space by expanding the heap. 493 HeapWord* expand_heap_and_allocate(size_t size, bool is_tlab); 494 495 HeapWord* mem_allocate_work(size_t size, 496 bool is_tlab, 497 bool* gc_overhead_limit_was_exceeded); 498 499 // Override 500 void check_for_non_bad_heap_word_value(HeapWord* addr, 501 size_t size) PRODUCT_RETURN; 502 503 #if INCLUDE_SERIALGC 504 // For use by mark-sweep. As implemented, mark-sweep-compact is global 505 // in an essential way: compaction is performed across generations, by 506 // iterating over spaces. 507 void prepare_for_compaction(); 508 #endif 509 510 // Perform a full collection of the generations up to and including max_generation. 511 // This is the low level interface used by the public versions of 512 // collect() and collect_locked(). Caller holds the Heap_lock on entry. 513 void collect_locked(GCCause::Cause cause, GenerationType max_generation); 514 515 // Save the tops of the spaces in all generations 516 void record_gen_tops_before_GC() PRODUCT_RETURN; 517 }; 518 519 #endif // SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP |