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) {