comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.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 d1605aabd0a1
children 1ee8caae33af
comparison
equal deleted inserted replaced
269:850fdf70db2b 271:818a18cd69a8
1046 // Fraction of current occupancy at which to start a CMS collection which 1046 // Fraction of current occupancy at which to start a CMS collection which
1047 // will collect this generation (at least). 1047 // will collect this generation (at least).
1048 double _initiating_occupancy; 1048 double _initiating_occupancy;
1049 1049
1050 protected: 1050 protected:
1051 // Grow generation by specified size (returns false if unable to grow)
1052 bool grow_by(size_t bytes);
1053 // Grow generation to reserved size.
1054 bool grow_to_reserved();
1055 // Shrink generation by specified size (returns false if unable to shrink) 1051 // Shrink generation by specified size (returns false if unable to shrink)
1056 virtual void shrink_by(size_t bytes); 1052 virtual void shrink_by(size_t bytes);
1057 1053
1058 // Update statistics for GC 1054 // Update statistics for GC
1059 virtual void update_gc_stats(int level, bool full); 1055 virtual void update_gc_stats(int level, bool full);
1101 } 1097 }
1102 1098
1103 // Override 1099 // Override
1104 virtual void ref_processor_init(); 1100 virtual void ref_processor_init();
1105 1101
1102 // Grow generation by specified size (returns false if unable to grow)
1103 bool grow_by(size_t bytes);
1104 // Grow generation to reserved size.
1105 bool grow_to_reserved();
1106
1106 void clear_expansion_cause() { _expansion_cause = CMSExpansionCause::_no_expansion; } 1107 void clear_expansion_cause() { _expansion_cause = CMSExpansionCause::_no_expansion; }
1107 1108
1108 // Space enquiries 1109 // Space enquiries
1109 size_t capacity() const; 1110 size_t capacity() const;
1110 size_t used() const; 1111 size_t used() const;
1191 } 1192 }
1192 1193
1193 // Allocation failure 1194 // Allocation failure
1194 void expand(size_t bytes, size_t expand_bytes, 1195 void expand(size_t bytes, size_t expand_bytes,
1195 CMSExpansionCause::Cause cause); 1196 CMSExpansionCause::Cause cause);
1197 virtual bool expand(size_t bytes, size_t expand_bytes);
1196 void shrink(size_t bytes); 1198 void shrink(size_t bytes);
1197 HeapWord* expand_and_par_lab_allocate(CMSParGCThreadState* ps, size_t word_sz); 1199 HeapWord* expand_and_par_lab_allocate(CMSParGCThreadState* ps, size_t word_sz);
1198 bool expand_and_ensure_spooling_space(PromotionInfo* promo); 1200 bool expand_and_ensure_spooling_space(PromotionInfo* promo);
1199 1201
1200 // Iteration support and related enquiries 1202 // Iteration support and related enquiries