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