src/hotspot/share/oops/instanceKlass.cpp
changeset 48874 f09fdaad7321
parent 48873 9536c39ac6de
child 48884 7e17b00dc245
--- a/src/hotspot/share/oops/instanceKlass.cpp	Tue Feb 06 08:24:36 2018 -0500
+++ b/src/hotspot/share/oops/instanceKlass.cpp	Wed Feb 07 03:43:29 2018 +0100
@@ -124,6 +124,8 @@
 
 #endif //  ndef DTRACE_ENABLED
 
+volatile int InstanceKlass::_total_instanceKlass_count = 0;
+
 static inline bool is_class_loader(const Symbol* class_name,
                                    const ClassFileParser& parser) {
   assert(class_name != NULL, "invariant");
@@ -191,6 +193,8 @@
   // Add all classes to our internal class loader list here,
   // including classes in the bootstrap (NULL) class loader.
   loader_data->add_class(ik, publicize);
+  Atomic::inc(&_total_instanceKlass_count);
+
   return ik;
 }
 
@@ -2237,6 +2241,9 @@
   // class can't be referenced anymore).
   if (_array_name != NULL)  _array_name->decrement_refcount();
   if (_source_debug_extension != NULL) FREE_C_HEAP_ARRAY(char, _source_debug_extension);
+
+  assert(_total_instanceKlass_count >= 1, "Sanity check");
+  Atomic::dec(&_total_instanceKlass_count);
 }
 
 void InstanceKlass::set_source_debug_extension(const char* array, int length) {