hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 17075 b53332c50aba
parent 17029 9ff8d7c0ed79
child 17078 a37993c37937
equal deleted inserted replaced
17073:99baa410e207 17075:b53332c50aba
    52 #include "runtime/fieldDescriptor.hpp"
    52 #include "runtime/fieldDescriptor.hpp"
    53 #include "runtime/handles.inline.hpp"
    53 #include "runtime/handles.inline.hpp"
    54 #include "runtime/javaCalls.hpp"
    54 #include "runtime/javaCalls.hpp"
    55 #include "runtime/mutexLocker.hpp"
    55 #include "runtime/mutexLocker.hpp"
    56 #include "runtime/thread.inline.hpp"
    56 #include "runtime/thread.inline.hpp"
       
    57 #include "services/classLoadingService.hpp"
    57 #include "services/threadService.hpp"
    58 #include "services/threadService.hpp"
    58 #include "utilities/dtrace.hpp"
    59 #include "utilities/dtrace.hpp"
    59 #include "utilities/macros.hpp"
    60 #include "utilities/macros.hpp"
    60 #if INCLUDE_ALL_GCS
    61 #if INCLUDE_ALL_GCS
    61 #include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp"
    62 #include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp"
  2310 
  2311 
  2311 static void clear_all_breakpoints(Method* m) {
  2312 static void clear_all_breakpoints(Method* m) {
  2312   m->clear_all_breakpoints();
  2313   m->clear_all_breakpoints();
  2313 }
  2314 }
  2314 
  2315 
       
  2316 
       
  2317 void InstanceKlass::notify_unload_class(InstanceKlass* ik) {
       
  2318   // notify the debugger
       
  2319   if (JvmtiExport::should_post_class_unload()) {
       
  2320     JvmtiExport::post_class_unload(ik);
       
  2321   }
       
  2322 
       
  2323   // notify ClassLoadingService of class unload
       
  2324   ClassLoadingService::notify_class_unloaded(ik);
       
  2325 }
       
  2326 
       
  2327 void InstanceKlass::release_C_heap_structures(InstanceKlass* ik) {
       
  2328   // Clean up C heap
       
  2329   ik->release_C_heap_structures();
       
  2330   ik->constants()->release_C_heap_structures();
       
  2331 }
       
  2332 
  2315 void InstanceKlass::release_C_heap_structures() {
  2333 void InstanceKlass::release_C_heap_structures() {
       
  2334 
       
  2335   // Can't release the constant pool here because the constant pool can be
       
  2336   // deallocated separately from the InstanceKlass for default methods and
       
  2337   // redefine classes.
       
  2338 
  2316   // Deallocate oop map cache
  2339   // Deallocate oop map cache
  2317   if (_oop_map_cache != NULL) {
  2340   if (_oop_map_cache != NULL) {
  2318     delete _oop_map_cache;
  2341     delete _oop_map_cache;
  2319     _oop_map_cache = NULL;
  2342     _oop_map_cache = NULL;
  2320   }
  2343   }