495
496 size_t DefNewGeneration::max_capacity() const {
497 const size_t alignment = GenCollectedHeap::heap()->collector_policy()->space_alignment();
498 const size_t reserved_bytes = reserved().byte_size();
499 return reserved_bytes - compute_survivor_size(reserved_bytes, alignment);
500 }
501
502 size_t DefNewGeneration::unsafe_max_alloc_nogc() const {
503 return eden()->free();
504 }
505
506 size_t DefNewGeneration::capacity_before_gc() const {
507 return eden()->capacity();
508 }
509
510 size_t DefNewGeneration::contiguous_available() const {
511 return eden()->free();
512 }
513
514
515 HeapWord** DefNewGeneration::top_addr() const { return eden()->top_addr(); }
516 HeapWord** DefNewGeneration::end_addr() const { return eden()->end_addr(); }
517
518 void DefNewGeneration::object_iterate(ObjectClosure* blk) {
519 eden()->object_iterate(blk);
520 from()->object_iterate(blk);
521 }
522
523
524 void DefNewGeneration::space_iterate(SpaceClosure* blk,
525 bool usedOnly) {
526 blk->do_space(eden());
527 blk->do_space(from());
528 blk->do_space(to());
529 }
530
531 // The last collection bailed out, we are running out of heap space,
532 // so we try to allocate the from-space, too.
533 HeapWord* DefNewGeneration::allocate_from_space(size_t size) {
534 bool should_try_alloc = should_allocate_from_space() || GCLocker::is_active_and_needs_gc();
535
|
495
496 size_t DefNewGeneration::max_capacity() const {
497 const size_t alignment = GenCollectedHeap::heap()->collector_policy()->space_alignment();
498 const size_t reserved_bytes = reserved().byte_size();
499 return reserved_bytes - compute_survivor_size(reserved_bytes, alignment);
500 }
501
502 size_t DefNewGeneration::unsafe_max_alloc_nogc() const {
503 return eden()->free();
504 }
505
506 size_t DefNewGeneration::capacity_before_gc() const {
507 return eden()->capacity();
508 }
509
510 size_t DefNewGeneration::contiguous_available() const {
511 return eden()->free();
512 }
513
514
515 HeapWord* volatile* DefNewGeneration::top_addr() const { return eden()->top_addr(); }
516 HeapWord** DefNewGeneration::end_addr() const { return eden()->end_addr(); }
517
518 void DefNewGeneration::object_iterate(ObjectClosure* blk) {
519 eden()->object_iterate(blk);
520 from()->object_iterate(blk);
521 }
522
523
524 void DefNewGeneration::space_iterate(SpaceClosure* blk,
525 bool usedOnly) {
526 blk->do_space(eden());
527 blk->do_space(from());
528 blk->do_space(to());
529 }
530
531 // The last collection bailed out, we are running out of heap space,
532 // so we try to allocate the from-space, too.
533 HeapWord* DefNewGeneration::allocate_from_space(size_t size) {
534 bool should_try_alloc = should_allocate_from_space() || GCLocker::is_active_and_needs_gc();
535
|