Mercurial > hg > truffle
diff src/share/vm/oops/instanceKlass.cpp @ 7464:ecd24264898b
8005048: NMT: #loaded classes needs to just show the # defined classes
Summary: Count number of instance classes so that it matches class metadata size
Reviewed-by: coleenp, acorn
author | zgu |
---|---|
date | Tue, 08 Jan 2013 14:04:25 -0500 |
parents | f34d701e952e |
children | 37a3e8b7a1e9 |
line wrap: on
line diff
--- a/src/share/vm/oops/instanceKlass.cpp Fri Dec 07 10:55:16 2012 -0800 +++ b/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) {