hotspot/src/share/vm/classfile/classLoaderData.cpp
changeset 23526 6851d341ad52
parent 22905 4b1549d69106
child 24424 2658d7834c6e
--- a/hotspot/src/share/vm/classfile/classLoaderData.cpp	Mon Mar 31 09:08:53 2014 +0200
+++ b/hotspot/src/share/vm/classfile/classLoaderData.cpp	Mon Mar 31 10:35:06 2014 +0200
@@ -135,6 +135,14 @@
   }
 }
 
+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);
@@ -624,6 +632,12 @@
   }
 }
 
+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);