< prev index next >

src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp

Print this page
rev 8068 : imported patch parallelscavenge_cleanup

*** 74,86 **** PSYoungGen* _young_gen; CardTableExtension* _card_table; public: CheckForUnmarkedObjects() { ! ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); ! assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); ! _young_gen = heap->young_gen(); _card_table = barrier_set_cast<CardTableExtension>(heap->barrier_set()); // No point in asserting barrier set type here. Need to make CardTableExtension // a unique barrier set type. } --- 74,84 ---- PSYoungGen* _young_gen; CardTableExtension* _card_table; public: CheckForUnmarkedObjects() { ! ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); _young_gen = heap->young_gen(); _card_table = barrier_set_cast<CardTableExtension>(heap->barrier_set()); // No point in asserting barrier set type here. Need to make CardTableExtension // a unique barrier set type. }
*** 323,345 **** // This should be called before a scavenge. void CardTableExtension::verify_all_young_refs_imprecise() { CheckForUnmarkedObjects check; ! ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); ! assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); ! PSOldGen* old_gen = heap->old_gen(); old_gen->object_iterate(&check); } // This should be called immediately after a scavenge, before mutators resume. void CardTableExtension::verify_all_young_refs_precise() { ! ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); ! assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); ! PSOldGen* old_gen = heap->old_gen(); CheckForPreciseMarks check( heap->young_gen(), barrier_set_cast<CardTableExtension>(heap->barrier_set())); --- 321,339 ---- // This should be called before a scavenge. void CardTableExtension::verify_all_young_refs_imprecise() { CheckForUnmarkedObjects check; ! ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); PSOldGen* old_gen = heap->old_gen(); old_gen->object_iterate(&check); } // This should be called immediately after a scavenge, before mutators resume. void CardTableExtension::verify_all_young_refs_precise() { ! ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); PSOldGen* old_gen = heap->old_gen(); CheckForPreciseMarks check( heap->young_gen(), barrier_set_cast<CardTableExtension>(heap->barrier_set()));
*** 349,359 **** verify_all_young_refs_precise_helper(old_gen->object_space()->used_region()); } void CardTableExtension::verify_all_young_refs_precise_helper(MemRegion mr) { CardTableExtension* card_table = ! barrier_set_cast<CardTableExtension>(Universe::heap()->barrier_set()); jbyte* bot = card_table->byte_for(mr.start()); jbyte* top = card_table->byte_for(mr.end()); while(bot <= top) { assert(*bot == clean_card || *bot == verify_card, "Found unwanted or unknown card mark"); --- 343,353 ---- verify_all_young_refs_precise_helper(old_gen->object_space()->used_region()); } void CardTableExtension::verify_all_young_refs_precise_helper(MemRegion mr) { CardTableExtension* card_table = ! barrier_set_cast<CardTableExtension>(ParallelScavengeHeap::heap()->barrier_set()); jbyte* bot = card_table->byte_for(mr.start()); jbyte* top = card_table->byte_for(mr.end()); while(bot <= top) { assert(*bot == clean_card || *bot == verify_card, "Found unwanted or unknown card mark");
*** 521,531 **** MemRegion new_committed = MemRegion(min_prev_start, cur_committed.end()); cur_committed = new_committed; } #ifdef ASSERT ! ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); assert(cur_committed.start() == (HeapWord*) align_size_up((uintptr_t) cur_committed.start(), os::vm_page_size()), "Starts should have proper alignment"); #endif --- 515,525 ---- MemRegion new_committed = MemRegion(min_prev_start, cur_committed.end()); cur_committed = new_committed; } #ifdef ASSERT ! ParallelScavengeHeap* heap = ParallelScavengeHeap::heap(); assert(cur_committed.start() == (HeapWord*) align_size_up((uintptr_t) cur_committed.start(), os::vm_page_size()), "Starts should have proper alignment"); #endif
< prev index next >