comparison src/share/vm/classfile/classLoaderData.cpp @ 10193:d58c62b7447d

Merge
author mgerdin
date Thu, 02 May 2013 19:28:59 +0200
parents 9d75bcd7c890 d587a5c30bd8
children f2110083203d
comparison
equal deleted inserted replaced
10192:9075044ed66b 10193:d58c62b7447d
278 } 278 }
279 279
280 void ClassLoaderData::unload() { 280 void ClassLoaderData::unload() {
281 _unloading = true; 281 _unloading = true;
282 282
283 // Tell serviceability tools these classes are unloading
284 classes_do(InstanceKlass::notify_unload_class);
285
283 if (TraceClassLoaderData) { 286 if (TraceClassLoaderData) {
284 ResourceMark rm; 287 ResourceMark rm;
285 tty->print("[ClassLoaderData: unload loader data "PTR_FORMAT, this); 288 tty->print("[ClassLoaderData: unload loader data "PTR_FORMAT, this);
286 tty->print(" for instance "PTR_FORMAT" of %s", class_loader(), 289 tty->print(" for instance "PTR_FORMAT" of %s", class_loader(),
287 loader_name()); 290 loader_name());
301 return alive; 304 return alive;
302 } 305 }
303 306
304 307
305 ClassLoaderData::~ClassLoaderData() { 308 ClassLoaderData::~ClassLoaderData() {
309 // Release C heap structures for all the classes.
310 classes_do(InstanceKlass::release_C_heap_structures);
311
306 Metaspace *m = _metaspace; 312 Metaspace *m = _metaspace;
307 if (m != NULL) { 313 if (m != NULL) {
308 _metaspace = NULL; 314 _metaspace = NULL;
309 // release the metaspace 315 // release the metaspace
310 delete m; 316 delete m;