< prev index next >

src/share/vm/classfile/javaClasses.hpp

Print this page

        

@@ -1171,10 +1171,11 @@
 class java_lang_invoke_CallSite: AllStatic {
   friend class JavaClasses;
 
 private:
   static int _target_offset;
+  static int _context_offset;
 
   static void compute_offsets();
 
 public:
   // Accessors

@@ -1182,20 +1183,48 @@
   static void         set_target(         oop site, oop target);
 
   static volatile oop     target_volatile(oop site);
   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);
+    
   // Testers
   static bool is_subclass(Klass* klass) {
     return klass->is_subclass_of(SystemDictionary::CallSite_klass());
   }
   static bool is_instance(oop obj);
 
   // Accessors for code generation:
   static int target_offset_in_bytes()           { return _target_offset; }
 };
 
+class java_lang_invoke_DependencyContext : AllStatic {
+  friend class JavaClasses;
+
+private:
+  static int _cleaner_offset;
+  static int _default_context_offset;
+
+  static void compute_offsets();
+
+public:
+  // Accessors
+  static oop              cleaner(oop ctx) { return ctx->obj_field(_cleaner_offset); }
+  
+  static oop      default_context();
+  static bool  is_default_context(oop ctx) { return (ctx == default_context()); };
+  
+  // Testers
+  static bool is_subclass(Klass* klass) {
+    return klass->is_subclass_of(SystemDictionary::DependencyContext_klass());
+  }
+  static bool is_instance(oop obj) {
+      return obj != NULL && is_subclass(obj->klass());
+  }
+};
 
 // Interface to java.security.AccessControlContext objects
 
 class java_security_AccessControlContext: AllStatic {
  private:
< prev index next >