Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/heapRegion.hpp @ 1666:5cbac8938c4c
6956639: G1: assert(cached_ptr != card_ptr) failed: shouldn't be, concurrentG1Refine.cpp:307
Summary: During concurrent refinment, filter cards in young regions after it has been determined that the region has been allocated from and the young type of the region has been set.
Reviewed-by: iveresov, tonyp, jcoomes
author | johnc |
---|---|
date | Mon, 19 Jul 2010 11:06:34 -0700 |
parents | c18cbe5936b8 |
children | 72a161e62cc4 |
comparison
equal
deleted
inserted
replaced
1665:a93a9eda13f7 | 1666:5cbac8938c4c |
---|---|
250 Young, // a region is young | 250 Young, // a region is young |
251 Survivor // a region is young and it contains | 251 Survivor // a region is young and it contains |
252 // survivor | 252 // survivor |
253 }; | 253 }; |
254 | 254 |
255 YoungType _young_type; | 255 volatile YoungType _young_type; |
256 int _young_index_in_cset; | 256 int _young_index_in_cset; |
257 SurvRateGroup* _surv_rate_group; | 257 SurvRateGroup* _surv_rate_group; |
258 int _age_index; | 258 int _age_index; |
259 | 259 |
260 // The start of the unmarked area. The unmarked area extends from this | 260 // The start of the unmarked area. The unmarked area extends from this |
724 // "cl->abort()".) Return of "NULL" indicates that the iteration | 724 // "cl->abort()".) Return of "NULL" indicates that the iteration |
725 // completed. | 725 // completed. |
726 HeapWord* | 726 HeapWord* |
727 object_iterate_mem_careful(MemRegion mr, ObjectClosure* cl); | 727 object_iterate_mem_careful(MemRegion mr, ObjectClosure* cl); |
728 | 728 |
729 // In this version - if filter_young is true and the region | |
730 // is a young region then we skip the iteration. | |
729 HeapWord* | 731 HeapWord* |
730 oops_on_card_seq_iterate_careful(MemRegion mr, | 732 oops_on_card_seq_iterate_careful(MemRegion mr, |
731 FilterOutOfRegionClosure* cl); | 733 FilterOutOfRegionClosure* cl, |
734 bool filter_young); | |
732 | 735 |
733 // The region "mr" is entirely in "this", and starts and ends at block | 736 // The region "mr" is entirely in "this", and starts and ends at block |
734 // boundaries. The caller declares that all the contained blocks are | 737 // boundaries. The caller declares that all the contained blocks are |
735 // coalesced into one. | 738 // coalesced into one. |
736 void declare_filled_region_to_BOT(MemRegion mr) { | 739 void declare_filled_region_to_BOT(MemRegion mr) { |