src/share/vm/code/dependencyContext.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/code

src/share/vm/code/dependencyContext.hpp

Print this page




 126 
 127   ~DependencyContext() {
 128     // Base oop relocation invalidates _dependency_context_addr.
 129     assert(_base_oop == _base(), "base oop relocation is forbidden");
 130   }
 131 #else
 132     DependencyContext(intptr_t* addr) : _dependency_context_addr(addr) {}
 133 #endif // ASSERT
 134 
 135   static const intptr_t EMPTY = 0; // dependencies = NULL, has_stale_entries = false
 136 
 137   static void init();
 138 
 139   int  mark_dependent_nmethods(DepChange& changes);
 140   void add_dependent_nmethod(nmethod* nm, bool expunge_stale_entries = false);
 141   void remove_dependent_nmethod(nmethod* nm, bool expunge_stale_entries = false);
 142   int  remove_all_dependents();
 143 
 144   void expunge_stale_entries();
 145 




 146 #ifndef PRODUCT
 147   void print_dependent_nmethods(bool verbose);
 148   bool is_dependent_nmethod(nmethod* nm);
 149   bool find_stale_entries();
 150 #endif //PRODUCT
 151 };
 152 #endif // SHARE_VM_CODE_DEPENDENCYCONTEXT_HPP


 126 
 127   ~DependencyContext() {
 128     // Base oop relocation invalidates _dependency_context_addr.
 129     assert(_base_oop == _base(), "base oop relocation is forbidden");
 130   }
 131 #else
 132     DependencyContext(intptr_t* addr) : _dependency_context_addr(addr) {}
 133 #endif // ASSERT
 134 
 135   static const intptr_t EMPTY = 0; // dependencies = NULL, has_stale_entries = false
 136 
 137   static void init();
 138 
 139   int  mark_dependent_nmethods(DepChange& changes);
 140   void add_dependent_nmethod(nmethod* nm, bool expunge_stale_entries = false);
 141   void remove_dependent_nmethod(nmethod* nm, bool expunge_stale_entries = false);
 142   int  remove_all_dependents();
 143 
 144   void expunge_stale_entries();
 145 
 146   // Unsafe deallocation of nmethodBuckets. Used in IK::release_C_heap_structures
 147   // to clean up the context possibly containing live entries pointing to unloaded nmethods.
 148   void wipe();
 149 
 150 #ifndef PRODUCT
 151   void print_dependent_nmethods(bool verbose);
 152   bool is_dependent_nmethod(nmethod* nm);
 153   bool find_stale_entries();
 154 #endif //PRODUCT
 155 };
 156 #endif // SHARE_VM_CODE_DEPENDENCYCONTEXT_HPP
src/share/vm/code/dependencyContext.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File