1.1 --- a/src/share/vm/oops/instanceKlass.cpp Wed Apr 24 09:00:04 2013 -0400 1.2 +++ b/src/share/vm/oops/instanceKlass.cpp Wed Apr 24 16:19:35 2013 -0400 1.3 @@ -54,6 +54,7 @@ 1.4 #include "runtime/javaCalls.hpp" 1.5 #include "runtime/mutexLocker.hpp" 1.6 #include "runtime/thread.inline.hpp" 1.7 +#include "services/classLoadingService.hpp" 1.8 #include "services/threadService.hpp" 1.9 #include "utilities/dtrace.hpp" 1.10 #include "utilities/macros.hpp" 1.11 @@ -2312,7 +2313,29 @@ 1.12 m->clear_all_breakpoints(); 1.13 } 1.14 1.15 + 1.16 +void InstanceKlass::notify_unload_class(InstanceKlass* ik) { 1.17 + // notify the debugger 1.18 + if (JvmtiExport::should_post_class_unload()) { 1.19 + JvmtiExport::post_class_unload(ik); 1.20 + } 1.21 + 1.22 + // notify ClassLoadingService of class unload 1.23 + ClassLoadingService::notify_class_unloaded(ik); 1.24 +} 1.25 + 1.26 +void InstanceKlass::release_C_heap_structures(InstanceKlass* ik) { 1.27 + // Clean up C heap 1.28 + ik->release_C_heap_structures(); 1.29 + ik->constants()->release_C_heap_structures(); 1.30 +} 1.31 + 1.32 void InstanceKlass::release_C_heap_structures() { 1.33 + 1.34 + // Can't release the constant pool here because the constant pool can be 1.35 + // deallocated separately from the InstanceKlass for default methods and 1.36 + // redefine classes. 1.37 + 1.38 // Deallocate oop map cache 1.39 if (_oop_map_cache != NULL) { 1.40 delete _oop_map_cache;