Mercurial > hg > graal-compiler
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; |