2441 void G1CollectedHeap::prepare_for_verify() {
2442 _verifier->prepare_for_verify();
2443 }
2444
2445 void G1CollectedHeap::verify(VerifyOption vo) {
2446 _verifier->verify(vo);
2447 }
2448
2449 bool G1CollectedHeap::supports_concurrent_phase_control() const {
2450 return true;
2451 }
2452
2453 const char* const* G1CollectedHeap::concurrent_phases() const {
2454 return _cmThread->concurrent_phases();
2455 }
2456
2457 bool G1CollectedHeap::request_concurrent_phase(const char* phase) {
2458 return _cmThread->request_concurrent_phase(phase);
2459 }
2460
2461 void G1CollectedHeap::verify_nmethod_roots(nmethod* nmethod) {
2462
2463 }
2464
2465 class PrintRegionClosure: public HeapRegionClosure {
2466 outputStream* _st;
2467 public:
2468 PrintRegionClosure(outputStream* st) : _st(st) {}
2469 bool doHeapRegion(HeapRegion* r) {
2470 r->print_on(_st);
2471 return false;
2472 }
2473 };
2474
2475 bool G1CollectedHeap::is_obj_dead_cond(const oop obj,
2476 const HeapRegion* hr,
2477 const VerifyOption vo) const {
2478 switch (vo) {
2479 case VerifyOption_G1UsePrevMarking: return is_obj_dead(obj, hr);
2480 case VerifyOption_G1UseNextMarking: return is_obj_ill(obj, hr);
2481 case VerifyOption_G1UseMarkWord: return !obj->is_gc_marked() && !hr->is_archive();
2482 default: ShouldNotReachHere();
2483 }
2484 return false; // keep some compilers happy
|
2441 void G1CollectedHeap::prepare_for_verify() {
2442 _verifier->prepare_for_verify();
2443 }
2444
2445 void G1CollectedHeap::verify(VerifyOption vo) {
2446 _verifier->verify(vo);
2447 }
2448
2449 bool G1CollectedHeap::supports_concurrent_phase_control() const {
2450 return true;
2451 }
2452
2453 const char* const* G1CollectedHeap::concurrent_phases() const {
2454 return _cmThread->concurrent_phases();
2455 }
2456
2457 bool G1CollectedHeap::request_concurrent_phase(const char* phase) {
2458 return _cmThread->request_concurrent_phase(phase);
2459 }
2460
2461 class PrintRegionClosure: public HeapRegionClosure {
2462 outputStream* _st;
2463 public:
2464 PrintRegionClosure(outputStream* st) : _st(st) {}
2465 bool doHeapRegion(HeapRegion* r) {
2466 r->print_on(_st);
2467 return false;
2468 }
2469 };
2470
2471 bool G1CollectedHeap::is_obj_dead_cond(const oop obj,
2472 const HeapRegion* hr,
2473 const VerifyOption vo) const {
2474 switch (vo) {
2475 case VerifyOption_G1UsePrevMarking: return is_obj_dead(obj, hr);
2476 case VerifyOption_G1UseNextMarking: return is_obj_ill(obj, hr);
2477 case VerifyOption_G1UseMarkWord: return !obj->is_gc_marked() && !hr->is_archive();
2478 default: ShouldNotReachHere();
2479 }
2480 return false; // keep some compilers happy
|