--- old/src/share/vm/classfile/javaClasses.hpp 2015-05-14 15:17:30.000000000 +0300 +++ new/src/share/vm/classfile/javaClasses.hpp 2015-05-14 15:17:30.000000000 +0300 @@ -1170,8 +1170,6 @@ private: static int _target_offset; static int _context_offset; - static int _default_context_offset; - static void compute_offsets(); @@ -1181,11 +1179,7 @@ static void set_target( oop site, oop target); static void set_target_volatile( oop site, oop target); - static oop context_volatile(oop site); - static void set_context_volatile(oop site, oop context); - static bool set_context_cas (oop site, oop context, oop expected); - - static oop default_context(); + static oop context(oop site); // Testers static bool is_subclass(Klass* klass) { @@ -1197,6 +1191,28 @@ static int target_offset_in_bytes() { return _target_offset; } }; +// Interface to java.lang.invoke.CallSite$Context objects + +class java_lang_invoke_CallSite_Context : AllStatic { + friend class JavaClasses; + +private: + static int _dependencies_offset; + + static void compute_offsets(); + +public: + // Accessors + static nmethodBucket* dependencies(oop context); + static void set_dependencies(oop context, nmethodBucket* bucket); + + // Testers + static bool is_subclass(Klass* klass) { + return klass->is_subclass_of(SystemDictionary::Context_klass()); + } + static bool is_instance(oop obj); +}; + // Interface to java.security.AccessControlContext objects class java_security_AccessControlContext: AllStatic {