src/hotspot/share/code/codeCache.hpp
changeset 50416 ef980b9ac191
parent 49611 973c9504178e
child 52385 5c679ec60888
equal deleted inserted replaced
50415:e4301f8c3aaa 50416:ef980b9ac191
   166 
   166 
   167   // GC support
   167   // GC support
   168   static void gc_epilogue();
   168   static void gc_epilogue();
   169   static void gc_prologue();
   169   static void gc_prologue();
   170   static void verify_oops();
   170   static void verify_oops();
   171   // If "unloading_occurred" is true, then unloads (i.e., breaks root links
   171   // If any oops are not marked this method unloads (i.e., breaks root links
   172   // to) any unmarked codeBlobs in the cache.  Sets "marked_for_unloading"
   172   // to) any unmarked codeBlobs in the cache.  Sets "marked_for_unloading"
   173   // to "true" iff some code got unloaded.
   173   // to "true" iff some code got unloaded.
       
   174   // "unloading_occurred" controls whether metadata should be cleaned because of class unloading.
   174   static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
   175   static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
   175   static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN;
   176   static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN;
   176 
   177 
   177   // Apply f to every live code blob in scavengable nmethods. Prune nmethods
   178   // Apply f to every live code blob in scavengable nmethods. Prune nmethods
   178   // from the list of scavengable nmethods if f->fix_relocations() and a nmethod
   179   // from the list of scavengable nmethods if f->fix_relocations() and a nmethod
   221 
   222 
   222   static double reverse_free_ratio(int code_blob_type);
   223   static double reverse_free_ratio(int code_blob_type);
   223 
   224 
   224   static bool needs_cache_clean()                     { return _needs_cache_clean; }
   225   static bool needs_cache_clean()                     { return _needs_cache_clean; }
   225   static void set_needs_cache_clean(bool v)           { _needs_cache_clean = v;    }
   226   static void set_needs_cache_clean(bool v)           { _needs_cache_clean = v;    }
       
   227 
   226   static void clear_inline_caches();                  // clear all inline caches
   228   static void clear_inline_caches();                  // clear all inline caches
   227   static void cleanup_inline_caches();
   229   static void cleanup_inline_caches();                // clean unloaded/zombie nmethods from inline caches
       
   230   static void do_unloading_nmethod_caches(bool class_unloading_occurred);  // clean all nmethod caches for unloading, including inline caches
   228 
   231 
   229   // Returns true if an own CodeHeap for the given CodeBlobType is available
   232   // Returns true if an own CodeHeap for the given CodeBlobType is available
   230   static bool heap_available(int code_blob_type);
   233   static bool heap_available(int code_blob_type);
   231 
   234 
   232   // Returns the CodeBlobType for the given CompiledMethod
   235   // Returns the CodeBlobType for the given CompiledMethod