--- a/src/hotspot/share/oops/instanceKlass.hpp Fri Nov 30 20:15:25 2018 +0900
+++ b/src/hotspot/share/oops/instanceKlass.hpp Fri Nov 30 11:40:48 2018 +0100
@@ -69,6 +69,7 @@
class jniIdMapBase;
class JNIid;
class JvmtiCachedClassFieldMap;
+class nmethodBucket;
class SuperTypeClosure;
// This is used in iterators below.
@@ -249,7 +250,8 @@
OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily)
JNIid* _jni_ids; // First JNI identifier for static fields in this class
jmethodID* volatile _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none
- intptr_t _dep_context; // packed DependencyContext structure
+ nmethodBucket* volatile _dep_context; // packed DependencyContext structure
+ uint64_t volatile _dep_context_last_cleaned;
nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class
#if INCLUDE_JVMTI
BreakpointInfo* _breakpoints; // bpt lists, managed by Method*
@@ -976,7 +978,8 @@
inline DependencyContext dependencies();
int mark_dependent_nmethods(KlassDepChange& changes);
void add_dependent_nmethod(nmethod* nm);
- void remove_dependent_nmethod(nmethod* nm, bool delete_immediately);
+ void remove_dependent_nmethod(nmethod* nm);
+ void clean_dependency_context();
// On-stack replacement support
nmethod* osr_nmethods_head() const { return _osr_nmethods_head; };