< 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 >