< prev index next >
src/share/vm/gc/g1/heapRegion.cpp
Print this page
rev 12906 : [mq]: gc_interface
@@ -49,11 +49,11 @@
size_t HeapRegion::CardsPerRegion = 0;
HeapRegionDCTOC::HeapRegionDCTOC(G1CollectedHeap* g1,
HeapRegion* hr,
G1ParPushHeapRSClosure* cl,
- CardTableModRefBS::PrecisionStyle precision) :
+ CardTable::PrecisionStyle precision) :
DirtyCardToOopClosure(hr, cl, precision, NULL),
_hr(hr), _rs_scan(cl), _g1(g1) { }
void HeapRegionDCTOC::walk_mem_region(MemRegion mr,
HeapWord* bottom,
@@ -146,11 +146,11 @@
guarantee(GrainWords == 0, "we should only set it once");
GrainWords = GrainBytes >> LogHeapWordSize;
guarantee((size_t) 1 << LogOfHRGrainWords == GrainWords, "sanity");
guarantee(CardsPerRegion == 0, "we should only set it once");
- CardsPerRegion = GrainBytes >> CardTableModRefBS::card_shift;
+ CardsPerRegion = GrainBytes >> G1CardTable::card_shift;
if (G1HeapRegionSize != GrainBytes) {
FLAG_SET_ERGO(size_t, G1HeapRegionSize, GrainBytes);
}
}
@@ -193,13 +193,12 @@
void HeapRegion::par_clear() {
assert(used() == 0, "the region should have been already cleared");
assert(capacity() == HeapRegion::GrainBytes, "should be back to normal");
HeapRegionRemSet* hrrs = rem_set();
hrrs->clear();
- CardTableModRefBS* ct_bs =
- barrier_set_cast<CardTableModRefBS>(G1CollectedHeap::heap()->barrier_set());
- ct_bs->clear(MemRegion(bottom(), end()));
+ G1CardTable* ct = G1CollectedHeap::heap()->g1_card_table();
+ ct->clear(MemRegion(bottom(), end()));
}
void HeapRegion::calc_gc_efficiency() {
// GC efficiency is the ratio of how much space would be
// reclaimed over how long we predict it would take to reclaim it.
@@ -616,21 +615,21 @@
}
class G1VerificationClosure : public OopClosure {
protected:
G1CollectedHeap* _g1h;
- CardTableModRefBS* _bs;
+ G1CardTable *_ct;
oop _containing_obj;
bool _failures;
int _n_failures;
VerifyOption _vo;
public:
// _vo == UsePrevMarking -> use "prev" marking information,
// _vo == UseNextMarking -> use "next" marking information,
// _vo == UseMarkWord -> use mark word from object header.
G1VerificationClosure(G1CollectedHeap* g1h, VerifyOption vo) :
- _g1h(g1h), _bs(barrier_set_cast<CardTableModRefBS>(g1h->barrier_set())),
+ _g1h(g1h), _ct(g1h->g1_card_table()),
_containing_obj(NULL), _failures(false), _n_failures(0), _vo(vo) {
}
void set_containing_obj(oop obj) {
_containing_obj = obj;
@@ -727,13 +726,13 @@
HeapRegion* from = _g1h->heap_region_containing((HeapWord*)p);
HeapRegion* to = _g1h->heap_region_containing(obj);
if (from != NULL && to != NULL &&
from != to &&
!to->is_pinned()) {
- jbyte cv_obj = *_bs->byte_for_const(_containing_obj);
- jbyte cv_field = *_bs->byte_for_const(p);
- const jbyte dirty = CardTableModRefBS::dirty_card_val();
+ jbyte cv_obj = *_ct->byte_for_const(_containing_obj);
+ jbyte cv_field = *_ct->byte_for_const(p);
+ const jbyte dirty = G1CardTable::dirty_card_val();
bool is_bad = !(from->is_young()
|| to->rem_set()->contains_reference(p)
|| !G1HRRSFlushLogBuffersOnVerify && // buffers were not flushed
(_containing_obj->is_objArray() ?
@@ -1077,6 +1076,5 @@
_top = bottom();
_scan_top = bottom();
set_saved_mark_word(NULL);
reset_bot();
}
-
< prev index next >