src/share/vm/memory/dump.cpp

Print this page

        

@@ -300,10 +300,13 @@
         typeArrayOop inner_classes = ik->inner_classes();
         if (inner_classes != NULL) {
           constantPoolOop constants = ik->constants();
           int n = inner_classes->length();
           for (int i = 0; i < n; i += instanceKlass::inner_class_next_offset) {
+            if (i == n - instanceKlass::enclosing_method_attribute_size) {
+              break;
+            }
             int ioff = i + instanceKlass::inner_class_inner_name_offset;
             int index = inner_classes->ushort_at(ioff);
             if (index != 0) {
               _closure->do_symbol(constants->symbol_at_addr(index));
             }