src/share/vm/classfile/classLoaderData.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/classfile/classLoaderData.cpp

src/share/vm/classfile/classLoaderData.cpp

Print this page
rev 6132 : 8037970: make PrintMethodData a diagnostic options
Summary: make PrintMethodData a diagnostic options for performance investigation
Reviewed-by:

*** 133,142 **** --- 133,150 ---- for (Klass* k = _klasses; k != NULL; k = k->next_link()) { f(k); } } + void ClassLoaderData::methods_do(void f(Method*)) { + for (Klass* k = _klasses; k != NULL; k = k->next_link()) { + if (k->oop_is_instance()) { + InstanceKlass::cast(k)->methods_do(f); + } + } + } + void ClassLoaderData::loaded_classes_do(KlassClosure* klass_closure) { // Lock to avoid classes being modified/added/removed during iteration MutexLockerEx ml(metaspace_lock(), Mutex::_no_safepoint_check_flag); for (Klass* k = _klasses; k != NULL; k = k->next_link()) { // Do not filter ArrayKlass oops here...
*** 622,631 **** --- 630,645 ---- for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) { cld->classes_do(f); } } + void ClassLoaderDataGraph::methods_do(void f(Method*)) { + for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) { + cld->methods_do(f); + } + } + void ClassLoaderDataGraph::loaded_classes_do(KlassClosure* klass_closure) { for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) { cld->loaded_classes_do(klass_closure); } }
src/share/vm/classfile/classLoaderData.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File