src/share/vm/oops/instanceKlass.cpp

changeset 4981
d587a5c30bd8
parent 4965
6337ca4dcad8
child 4984
c115fac239eb
     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;

mercurial