2315 G1StringDedup::deduplicate(str);
2316 }
2317 }
2318
2319 void G1CollectedHeap::prepare_for_verify() {
2320 _verifier->prepare_for_verify();
2321 }
2322
2323 void G1CollectedHeap::verify(VerifyOption vo) {
2324 _verifier->verify(vo);
2325 }
2326
2327 bool G1CollectedHeap::supports_concurrent_phase_control() const {
2328 return true;
2329 }
2330
2331 bool G1CollectedHeap::request_concurrent_phase(const char* phase) {
2332 return _cm_thread->request_concurrent_phase(phase);
2333 }
2334
2335 bool G1CollectedHeap::is_hetero_heap() const {
2336 return _collector_policy->is_hetero_heap();
2337 }
2338
2339 class PrintRegionClosure: public HeapRegionClosure {
2340 outputStream* _st;
2341 public:
2342 PrintRegionClosure(outputStream* st) : _st(st) {}
2343 bool do_heap_region(HeapRegion* r) {
2344 r->print_on(_st);
2345 return false;
2346 }
2347 };
2348
2349 bool G1CollectedHeap::is_obj_dead_cond(const oop obj,
2350 const HeapRegion* hr,
2351 const VerifyOption vo) const {
2352 switch (vo) {
2353 case VerifyOption_G1UsePrevMarking: return is_obj_dead(obj, hr);
2354 case VerifyOption_G1UseNextMarking: return is_obj_ill(obj, hr);
2355 case VerifyOption_G1UseFullMarking: return is_obj_dead_full(obj, hr);
2356 default: ShouldNotReachHere();
|
2315 G1StringDedup::deduplicate(str);
2316 }
2317 }
2318
2319 void G1CollectedHeap::prepare_for_verify() {
2320 _verifier->prepare_for_verify();
2321 }
2322
2323 void G1CollectedHeap::verify(VerifyOption vo) {
2324 _verifier->verify(vo);
2325 }
2326
2327 bool G1CollectedHeap::supports_concurrent_phase_control() const {
2328 return true;
2329 }
2330
2331 bool G1CollectedHeap::request_concurrent_phase(const char* phase) {
2332 return _cm_thread->request_concurrent_phase(phase);
2333 }
2334
2335 bool G1CollectedHeap::is_heterogeneous_heap() const {
2336 return _collector_policy->is_heterogeneous_heap();
2337 }
2338
2339 class PrintRegionClosure: public HeapRegionClosure {
2340 outputStream* _st;
2341 public:
2342 PrintRegionClosure(outputStream* st) : _st(st) {}
2343 bool do_heap_region(HeapRegion* r) {
2344 r->print_on(_st);
2345 return false;
2346 }
2347 };
2348
2349 bool G1CollectedHeap::is_obj_dead_cond(const oop obj,
2350 const HeapRegion* hr,
2351 const VerifyOption vo) const {
2352 switch (vo) {
2353 case VerifyOption_G1UsePrevMarking: return is_obj_dead(obj, hr);
2354 case VerifyOption_G1UseNextMarking: return is_obj_ill(obj, hr);
2355 case VerifyOption_G1UseFullMarking: return is_obj_dead_full(obj, hr);
2356 default: ShouldNotReachHere();
|