--- a/hotspot/src/share/vm/oops/instanceKlass.cpp Fri Dec 07 10:55:16 2012 -0800
+++ b/hotspot/src/share/vm/oops/instanceKlass.cpp Tue Jan 08 14:04:25 2013 -0500
@@ -160,6 +160,8 @@
#endif // ndef DTRACE_ENABLED
+volatile int InstanceKlass::_total_instanceKlass_count = 0;
+
Klass* InstanceKlass::allocate_instance_klass(ClassLoaderData* loader_data,
int vtable_len,
int itable_len,
@@ -203,6 +205,7 @@
access_flags, !host_klass.is_null());
}
+ Atomic::inc(&_total_instanceKlass_count);
return ik;
}
@@ -2306,6 +2309,9 @@
if (_array_name != NULL) _array_name->decrement_refcount();
if (_source_file_name != NULL) _source_file_name->decrement_refcount();
if (_source_debug_extension != NULL) FREE_C_HEAP_ARRAY(char, _source_debug_extension, mtClass);
+
+ assert(_total_instanceKlass_count >= 1, "Sanity check");
+ Atomic::dec(&_total_instanceKlass_count);
}
void InstanceKlass::set_source_file_name(Symbol* n) {