comparison src/share/vm/memory/generation.hpp @ 271:818a18cd69a8

6730514: assertion failure in mangling code when expanding by 0 bytes Summary: An expansion by 0 bytes was not anticipated when the assertion was composed. Reviewed-by: jjh, jcoomes, apetrusenko
author jmasa
date Wed, 30 Jul 2008 11:54:00 -0700
parents 850fdf70db2b
children e9be0e04635a
comparison
equal deleted inserted replaced
269:850fdf70db2b 271:818a18cd69a8
604 CardGeneration(ReservedSpace rs, size_t initial_byte_size, int level, 604 CardGeneration(ReservedSpace rs, size_t initial_byte_size, int level,
605 GenRemSet* remset); 605 GenRemSet* remset);
606 606
607 public: 607 public:
608 608
609 // Attempt to expand the generation by "bytes". Expand by at a
610 // minimum "expand_bytes". Return true if some amount (not
611 // necessarily the full "bytes") was done.
612 virtual bool expand(size_t bytes, size_t expand_bytes);
613
609 virtual void clear_remembered_set(); 614 virtual void clear_remembered_set();
610 615
611 virtual void invalidate_remembered_set(); 616 virtual void invalidate_remembered_set();
612 617
613 virtual void prepare_for_verify(); 618 virtual void prepare_for_verify();
619
620 // Grow generation with specified size (returns false if unable to grow)
621 virtual bool grow_by(size_t bytes) = 0;
622 // Grow generation to reserved size.
623 virtual bool grow_to_reserved() = 0;
614 }; 624 };
615 625
616 // OneContigSpaceCardGeneration models a heap of old objects contained in a single 626 // OneContigSpaceCardGeneration models a heap of old objects contained in a single
617 // contiguous space. 627 // contiguous space.
618 // 628 //
629 ContiguousSpace* _the_space; // actual space holding objects 639 ContiguousSpace* _the_space; // actual space holding objects
630 WaterMark _last_gc; // watermark between objects allocated before 640 WaterMark _last_gc; // watermark between objects allocated before
631 // and after last GC. 641 // and after last GC.
632 642
633 // Grow generation with specified size (returns false if unable to grow) 643 // Grow generation with specified size (returns false if unable to grow)
634 bool grow_by(size_t bytes); 644 virtual bool grow_by(size_t bytes);
635 // Grow generation to reserved size. 645 // Grow generation to reserved size.
636 bool grow_to_reserved(); 646 virtual bool grow_to_reserved();
637 // Shrink generation with specified size (returns false if unable to shrink) 647 // Shrink generation with specified size (returns false if unable to shrink)
638 void shrink_by(size_t bytes); 648 void shrink_by(size_t bytes);
639 649
640 // Allocation failure 650 // Allocation failure
641 void expand(size_t bytes, size_t expand_bytes); 651 virtual bool expand(size_t bytes, size_t expand_bytes);
642 void shrink(size_t bytes); 652 void shrink(size_t bytes);
643 653
644 // Accessing spaces 654 // Accessing spaces
645 ContiguousSpace* the_space() const { return _the_space; } 655 ContiguousSpace* the_space() const { return _the_space; }
646 656