1076 } 1077 }; 1078 1079 void GenCollectedHeap::prepare_for_verify() { 1080 ensure_parsability(false); // no need to retire TLABs 1081 GenPrepareForVerifyClosure blk; 1082 generation_iterate(&blk, false); 1083 } 1084 1085 void GenCollectedHeap::generation_iterate(GenClosure* cl, 1086 bool old_to_young) { 1087 if (old_to_young) { 1088 cl->do_generation(_old_gen); 1089 cl->do_generation(_young_gen); 1090 } else { 1091 cl->do_generation(_young_gen); 1092 cl->do_generation(_old_gen); 1093 } 1094 } 1095 1096 void GenCollectedHeap::space_iterate(SpaceClosure* cl) { 1097 _young_gen->space_iterate(cl, true); 1098 _old_gen->space_iterate(cl, true); 1099 } 1100 1101 bool GenCollectedHeap::is_maximal_no_gc() const { 1102 return _young_gen->is_maximal_no_gc() && _old_gen->is_maximal_no_gc(); 1103 } 1104 1105 void GenCollectedHeap::save_marks() { 1106 _young_gen->save_marks(); 1107 _old_gen->save_marks(); 1108 } 1109 1110 GenCollectedHeap* GenCollectedHeap::heap() { 1111 assert(_gch != NULL, "Uninitialized access to GenCollectedHeap::heap()"); 1112 assert(_gch->kind() == CollectedHeap::GenCollectedHeap, "not a generational heap"); 1113 return _gch; 1114 } 1115 1116 1117 void GenCollectedHeap::prepare_for_compaction() { 1118 guarantee(_n_gens = 2, "Wrong number of generations"); 1119 // Start by compacting into same gen. 1120 CompactPoint cp(_old_gen); | 1076 } 1077 }; 1078 1079 void GenCollectedHeap::prepare_for_verify() { 1080 ensure_parsability(false); // no need to retire TLABs 1081 GenPrepareForVerifyClosure blk; 1082 generation_iterate(&blk, false); 1083 } 1084 1085 void GenCollectedHeap::generation_iterate(GenClosure* cl, 1086 bool old_to_young) { 1087 if (old_to_young) { 1088 cl->do_generation(_old_gen); 1089 cl->do_generation(_young_gen); 1090 } else { 1091 cl->do_generation(_young_gen); 1092 cl->do_generation(_old_gen); 1093 } 1094 } 1095 1096 bool GenCollectedHeap::is_maximal_no_gc() const { 1097 return _young_gen->is_maximal_no_gc() && _old_gen->is_maximal_no_gc(); 1098 } 1099 1100 void GenCollectedHeap::save_marks() { 1101 _young_gen->save_marks(); 1102 _old_gen->save_marks(); 1103 } 1104 1105 GenCollectedHeap* GenCollectedHeap::heap() { 1106 assert(_gch != NULL, "Uninitialized access to GenCollectedHeap::heap()"); 1107 assert(_gch->kind() == CollectedHeap::GenCollectedHeap, "not a generational heap"); 1108 return _gch; 1109 } 1110 1111 1112 void GenCollectedHeap::prepare_for_compaction() { 1113 guarantee(_n_gens = 2, "Wrong number of generations"); 1114 // Start by compacting into same gen. 1115 CompactPoint cp(_old_gen); |