< prev index next >
src/hotspot/share/code/codeCache.hpp
//
// IMPORTANT: If you add new CodeHeaps to the code cache or change the
// existing ones, make sure to adapt the dtrace scripts (jhelper.d) for
// Solaris and BSD.
! class OopClosure;
class KlassDepChange;
class CodeCache : AllStatic {
friend class VMStructs;
friend class JVMCIVMStructs;
template <class T, class Filter> friend class CodeBlobIterator;
//
// IMPORTANT: If you add new CodeHeaps to the code cache or change the
// existing ones, make sure to adapt the dtrace scripts (jhelper.d) for
// Solaris and BSD.
! class ExceptionCache;
class KlassDepChange;
+ class OopClosure;
class CodeCache : AllStatic {
friend class VMStructs;
friend class JVMCIVMStructs;
template <class T, class Filter> friend class CodeBlobIterator;
***************
static address _high_bound; // Upper bound of CodeHeap addresses
static int _number_of_nmethods_with_dependencies; // Total number of nmethods with dependencies
static bool _needs_cache_clean; // True if inline caches of the nmethods needs to be flushed
static nmethod* _scavenge_root_nmethods; // linked via nm->scavenge_root_link()
+ static ExceptionCache* volatile _exception_cache_purge_list;
+
static void mark_scavenge_root_nmethods() PRODUCT_RETURN;
static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN;
// CodeHeap management
static void initialize_heaps(); // Initializes the CodeHeaps
***************
// to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading"
// to "true" iff some code got unloaded.
// "unloading_occurred" controls whether metadata should be cleaned because of class unloading.
static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN;
+ static void release_exception_cache(ExceptionCache* entry);
+ static void purge_exception_caches();
// Apply f to every live code blob in scavengable nmethods. Prune nmethods
// from the list of scavengable nmethods if f->fix_relocations() and a nmethod
// no longer has scavengable oops. If f->fix_relocations(), then f must copy
// objects to their new location immediately to avoid fixing nmethods on the
< prev index next >