2746
2747 void G1CollectedHeap::prepare_for_verify() {
2748 if (SafepointSynchronize::is_at_safepoint() || ! UseTLAB) {
2749 ensure_parsability(false);
2750 }
2751 g1_rem_set()->prepare_for_verify();
2752 }
2753
2754 bool G1CollectedHeap::allocated_since_marking(oop obj, HeapRegion* hr,
2755 VerifyOption vo) {
2756 switch (vo) {
2757 case VerifyOption_G1UsePrevMarking:
2758 return hr->obj_allocated_since_prev_marking(obj);
2759 case VerifyOption_G1UseNextMarking:
2760 return hr->obj_allocated_since_next_marking(obj);
2761 case VerifyOption_G1UseMarkWord:
2762 return false;
2763 default:
2764 ShouldNotReachHere();
2765 }
2766 return false; // Keep some compilers happy
2767 }
2768
2769 HeapWord* G1CollectedHeap::top_at_mark_start(HeapRegion* hr, VerifyOption vo) {
2770 switch (vo) {
2771 case VerifyOption_G1UsePrevMarking: return hr->prev_top_at_mark_start();
2772 case VerifyOption_G1UseNextMarking: return hr->next_top_at_mark_start();
2773 case VerifyOption_G1UseMarkWord: return NULL;
2774 default: ShouldNotReachHere();
2775 }
2776 return NULL; // keep some compilers happy
2777 }
2778
2779 bool G1CollectedHeap::is_marked(oop obj, VerifyOption vo) {
2780 switch (vo) {
2781 case VerifyOption_G1UsePrevMarking: return isMarkedPrev(obj);
2782 case VerifyOption_G1UseNextMarking: return isMarkedNext(obj);
2783 case VerifyOption_G1UseMarkWord: return obj->is_gc_marked();
2784 default: ShouldNotReachHere();
2785 }
2786 return false; // keep some compilers happy
|
2746
2747 void G1CollectedHeap::prepare_for_verify() {
2748 if (SafepointSynchronize::is_at_safepoint() || ! UseTLAB) {
2749 ensure_parsability(false);
2750 }
2751 g1_rem_set()->prepare_for_verify();
2752 }
2753
2754 bool G1CollectedHeap::allocated_since_marking(oop obj, HeapRegion* hr,
2755 VerifyOption vo) {
2756 switch (vo) {
2757 case VerifyOption_G1UsePrevMarking:
2758 return hr->obj_allocated_since_prev_marking(obj);
2759 case VerifyOption_G1UseNextMarking:
2760 return hr->obj_allocated_since_next_marking(obj);
2761 case VerifyOption_G1UseMarkWord:
2762 return false;
2763 default:
2764 ShouldNotReachHere();
2765 }
2766 return false; // keep some compilers happy
2767 }
2768
2769 HeapWord* G1CollectedHeap::top_at_mark_start(HeapRegion* hr, VerifyOption vo) {
2770 switch (vo) {
2771 case VerifyOption_G1UsePrevMarking: return hr->prev_top_at_mark_start();
2772 case VerifyOption_G1UseNextMarking: return hr->next_top_at_mark_start();
2773 case VerifyOption_G1UseMarkWord: return NULL;
2774 default: ShouldNotReachHere();
2775 }
2776 return NULL; // keep some compilers happy
2777 }
2778
2779 bool G1CollectedHeap::is_marked(oop obj, VerifyOption vo) {
2780 switch (vo) {
2781 case VerifyOption_G1UsePrevMarking: return isMarkedPrev(obj);
2782 case VerifyOption_G1UseNextMarking: return isMarkedNext(obj);
2783 case VerifyOption_G1UseMarkWord: return obj->is_gc_marked();
2784 default: ShouldNotReachHere();
2785 }
2786 return false; // keep some compilers happy
|