hotspot/src/share/vm/classfile/classLoaderData.cpp
changeset 17119 3e2f3125348e
parent 17110 a8f03d38bde5
parent 17075 b53332c50aba
child 18025 b7bcf7497f93
--- a/hotspot/src/share/vm/classfile/classLoaderData.cpp	Tue Apr 30 16:36:24 2013 +0200
+++ b/hotspot/src/share/vm/classfile/classLoaderData.cpp	Thu May 02 19:28:59 2013 +0200
@@ -280,6 +280,9 @@
 void ClassLoaderData::unload() {
   _unloading = true;
 
+  // Tell serviceability tools these classes are unloading
+  classes_do(InstanceKlass::notify_unload_class);
+
   if (TraceClassLoaderData) {
     ResourceMark rm;
     tty->print("[ClassLoaderData: unload loader data "PTR_FORMAT, this);
@@ -303,6 +306,9 @@
 
 
 ClassLoaderData::~ClassLoaderData() {
+  // Release C heap structures for all the classes.
+  classes_do(InstanceKlass::release_C_heap_structures);
+
   Metaspace *m = _metaspace;
   if (m != NULL) {
     _metaspace = NULL;