--- a/hotspot/src/share/vm/classfile/classLoaderData.cpp Thu Mar 14 00:33:08 2013 -0700
+++ b/hotspot/src/share/vm/classfile/classLoaderData.cpp Fri Mar 15 17:24:40 2013 -0400
@@ -105,6 +105,7 @@
void ClassLoaderData::classes_do(KlassClosure* klass_closure) {
for (Klass* k = _klasses; k != NULL; k = k->next_link()) {
klass_closure->do_klass(k);
+ assert(k != k->next_link(), "no loops!");
}
}
@@ -113,6 +114,7 @@
if (k->oop_is_instance()) {
f(InstanceKlass::cast(k));
}
+ assert(k != k->next_link(), "no loops!");
}
}
@@ -258,6 +260,7 @@
return;
}
prev = k;
+ assert(k != k->next_link(), "no loops!");
}
ShouldNotReachHere(); // should have found this class!!
}
@@ -439,6 +442,7 @@
while (k != NULL) {
out->print_cr("klass "PTR_FORMAT", %s, CT: %d, MUT: %d", k, k->name()->as_C_string(),
k->has_modified_oops(), k->has_accumulated_modified_oops());
+ assert(k != k->next_link(), "no loops!");
k = k->next_link();
}
}
@@ -465,6 +469,7 @@
for (Klass* k = _klasses; k != NULL; k = k->next_link()) {
guarantee(k->class_loader_data() == this, "Must be the same");
k->verify();
+ assert(k != k->next_link(), "no loops!");
}
}