< prev index next >
src/share/vm/classfile/javaClasses.hpp
Print this page
*** 1171,1180 ****
--- 1171,1181 ----
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,1201 ****
--- 1183,1230 ----
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 >