1237 1238 // Walk classes in the loaded class dictionaries in various forms. 1239 // Only walks the classes defined in this class loader. 1240 void ClassLoaderDataGraph::dictionary_classes_do(void f(InstanceKlass*)) { 1241 Thread* thread = Thread::current(); 1242 FOR_ALL_DICTIONARY(cld) { 1243 Handle holder(thread, cld->holder_phantom()); 1244 cld->dictionary()->classes_do(f); 1245 } 1246 } 1247 1248 // Only walks the classes defined in this class loader. 1249 void ClassLoaderDataGraph::dictionary_classes_do(void f(InstanceKlass*, TRAPS), TRAPS) { 1250 Thread* thread = Thread::current(); 1251 FOR_ALL_DICTIONARY(cld) { 1252 Handle holder(thread, cld->holder_phantom()); 1253 cld->dictionary()->classes_do(f, CHECK); 1254 } 1255 } 1256 1257 // Walks all entries in the dictionary including entries initiated by this class loader. 1258 void ClassLoaderDataGraph::dictionary_all_entries_do(void f(InstanceKlass*, ClassLoaderData*)) { 1259 Thread* thread = Thread::current(); 1260 FOR_ALL_DICTIONARY(cld) { 1261 Handle holder(thread, cld->holder_phantom()); 1262 cld->dictionary()->all_entries_do(f); 1263 } 1264 } 1265 1266 void ClassLoaderDataGraph::verify_dictionary() { 1267 FOR_ALL_DICTIONARY(cld) { 1268 cld->dictionary()->verify(); 1269 } 1270 } 1271 1272 void ClassLoaderDataGraph::print_dictionary(outputStream* st) { 1273 FOR_ALL_DICTIONARY(cld) { 1274 st->print("Dictionary for "); 1275 cld->print_value_on(st); 1276 st->cr(); 1277 cld->dictionary()->print_on(st); 1278 st->cr(); 1279 } 1280 } 1281 1282 void ClassLoaderDataGraph::print_dictionary_statistics(outputStream* st) { 1283 FOR_ALL_DICTIONARY(cld) { 1284 ResourceMark rm; 1285 stringStream tempst; | 1237 1238 // Walk classes in the loaded class dictionaries in various forms. 1239 // Only walks the classes defined in this class loader. 1240 void ClassLoaderDataGraph::dictionary_classes_do(void f(InstanceKlass*)) { 1241 Thread* thread = Thread::current(); 1242 FOR_ALL_DICTIONARY(cld) { 1243 Handle holder(thread, cld->holder_phantom()); 1244 cld->dictionary()->classes_do(f); 1245 } 1246 } 1247 1248 // Only walks the classes defined in this class loader. 1249 void ClassLoaderDataGraph::dictionary_classes_do(void f(InstanceKlass*, TRAPS), TRAPS) { 1250 Thread* thread = Thread::current(); 1251 FOR_ALL_DICTIONARY(cld) { 1252 Handle holder(thread, cld->holder_phantom()); 1253 cld->dictionary()->classes_do(f, CHECK); 1254 } 1255 } 1256 1257 void ClassLoaderDataGraph::verify_dictionary() { 1258 FOR_ALL_DICTIONARY(cld) { 1259 cld->dictionary()->verify(); 1260 } 1261 } 1262 1263 void ClassLoaderDataGraph::print_dictionary(outputStream* st) { 1264 FOR_ALL_DICTIONARY(cld) { 1265 st->print("Dictionary for "); 1266 cld->print_value_on(st); 1267 st->cr(); 1268 cld->dictionary()->print_on(st); 1269 st->cr(); 1270 } 1271 } 1272 1273 void ClassLoaderDataGraph::print_dictionary_statistics(outputStream* st) { 1274 FOR_ALL_DICTIONARY(cld) { 1275 ResourceMark rm; 1276 stringStream tempst; |