< prev index next >

src/hotspot/share/gc/g1/heapRegion.cpp

Print this page
rev 49513 : imported patch 8200362-g1muxclosure-disable-implicit-verification
rev 49514 : imported patch 8200362-stefanj-review
rev 49525 : [mq]: 8200426-sangheon-review

*** 628,651 **** // This really ought to be commoned up into OffsetTableContigSpace somehow. // We would need a mechanism to make that code skip dead objects. void HeapRegion::verify(VerifyOption vo, bool* failures) const { ! G1CollectedHeap* g1 = G1CollectedHeap::heap(); *failures = false; HeapWord* p = bottom(); HeapWord* prev_p = NULL; ! VerifyLiveClosure vl_cl(g1, vo); ! VerifyRemSetClosure vr_cl(g1, vo); bool is_region_humongous = is_humongous(); size_t object_num = 0; while (p < top()) { oop obj = oop(p); size_t obj_size = block_size(p); object_num += 1; ! if (!g1->is_obj_dead_cond(obj, this, vo)) { if (oopDesc::is_oop(obj)) { Klass* klass = obj->klass(); bool is_metaspace_object = Metaspace::contains(klass); if (!is_metaspace_object) { log_error(gc, verify)("klass " PTR_FORMAT " of object " PTR_FORMAT " " --- 628,651 ---- // This really ought to be commoned up into OffsetTableContigSpace somehow. // We would need a mechanism to make that code skip dead objects. void HeapRegion::verify(VerifyOption vo, bool* failures) const { ! G1CollectedHeap* g1h = G1CollectedHeap::heap(); *failures = false; HeapWord* p = bottom(); HeapWord* prev_p = NULL; ! VerifyLiveClosure vl_cl(g1h, vo); ! VerifyRemSetClosure vr_cl(g1h, vo); bool is_region_humongous = is_humongous(); size_t object_num = 0; while (p < top()) { oop obj = oop(p); size_t obj_size = block_size(p); object_num += 1; ! if (!g1h->is_obj_dead_cond(obj, this, vo)) { if (oopDesc::is_oop(obj)) { Klass* klass = obj->klass(); bool is_metaspace_object = Metaspace::contains(klass); if (!is_metaspace_object) { log_error(gc, verify)("klass " PTR_FORMAT " of object " PTR_FORMAT " "
*** 657,667 **** "not a klass", p2i(klass), p2i(obj)); *failures = true; return; } else { vl_cl.set_containing_obj(obj); ! if (!g1->collector_state()->in_full_gc() || G1VerifyRSetsDuringFullGC) { // verify liveness and rem_set vr_cl.set_containing_obj(obj); G1Mux2Closure mux(&vl_cl, &vr_cl); obj->oop_iterate(&mux); --- 657,667 ---- "not a klass", p2i(klass), p2i(obj)); *failures = true; return; } else { vl_cl.set_containing_obj(obj); ! if (!g1h->collector_state()->in_full_gc() || G1VerifyRSetsDuringFullGC) { // verify liveness and rem_set vr_cl.set_containing_obj(obj); G1Mux2Closure mux(&vl_cl, &vr_cl); obj->oop_iterate(&mux);
*** 776,795 **** bool dummy = false; verify(VerifyOption_G1UsePrevMarking, /* failures */ &dummy); } void HeapRegion::verify_rem_set(VerifyOption vo, bool* failures) const { ! G1CollectedHeap* g1 = G1CollectedHeap::heap(); *failures = false; HeapWord* p = bottom(); HeapWord* prev_p = NULL; ! VerifyRemSetClosure vr_cl(g1, vo); while (p < top()) { oop obj = oop(p); size_t obj_size = block_size(p); ! if (!g1->is_obj_dead_cond(obj, this, vo)) { if (oopDesc::is_oop(obj)) { vr_cl.set_containing_obj(obj); obj->oop_iterate(&vr_cl); if (vr_cl.failures()) { --- 776,795 ---- bool dummy = false; verify(VerifyOption_G1UsePrevMarking, /* failures */ &dummy); } void HeapRegion::verify_rem_set(VerifyOption vo, bool* failures) const { ! G1CollectedHeap* g1h = G1CollectedHeap::heap(); *failures = false; HeapWord* p = bottom(); HeapWord* prev_p = NULL; ! VerifyRemSetClosure vr_cl(g1h, vo); while (p < top()) { oop obj = oop(p); size_t obj_size = block_size(p); ! if (!g1h->is_obj_dead_cond(obj, this, vo)) { if (oopDesc::is_oop(obj)) { vr_cl.set_containing_obj(obj); obj->oop_iterate(&vr_cl); if (vr_cl.failures()) {
< prev index next >