< prev index next >

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

Print this page
rev 7807 : [mq]: bcast

*** 1,7 **** /* ! * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 77,87 **** CheckForUnmarkedObjects() { ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); _young_gen = heap->young_gen(); ! _card_table = (CardTableExtension*)heap->barrier_set(); // No point in asserting barrier set type here. Need to make CardTableExtension // a unique barrier set type. } // Card marks are not precise. The current system can leave us with --- 77,87 ---- 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. } // Card marks are not precise. The current system can leave us with
*** 337,356 **** ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); PSOldGen* old_gen = heap->old_gen(); ! CheckForPreciseMarks check(heap->young_gen(), (CardTableExtension*)heap->barrier_set()); old_gen->oop_iterate_no_header(&check); 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 = (CardTableExtension*)Universe::heap()->barrier_set(); ! // FIX ME ASSERT HERE 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"); --- 337,358 ---- 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())); old_gen->oop_iterate_no_header(&check); 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");
< prev index next >