1067 class java_dyn_CallSite: AllStatic {
1068 friend class JavaClasses;
1069
1070 private:
1071 static int _type_offset;
1072 static int _target_offset;
1073 static int _vmmethod_offset;
1074
1075 static void compute_offsets();
1076
1077 public:
1078 // Accessors
1079 static oop type(oop site);
1080
1081 static oop target(oop site);
1082 static void set_target(oop site, oop target);
1083
1084 static oop vmmethod(oop site);
1085 static void set_vmmethod(oop site, oop ref);
1086
1087 // Accessors for code generation:
1088 static int target_offset_in_bytes() { return _target_offset; }
1089 static int type_offset_in_bytes() { return _type_offset; }
1090 static int vmmethod_offset_in_bytes() { return _vmmethod_offset; }
1091 };
1092
1093
1094 // Interface to java.security.AccessControlContext objects
1095
1096 class java_security_AccessControlContext: AllStatic {
1097 private:
1098 // Note that for this class the layout changed between JDK1.2 and JDK1.3,
1099 // so we compute the offsets at startup rather than hard-wiring them.
1100 static int _context_offset;
1101 static int _privilegedContext_offset;
1102 static int _isPrivileged_offset;
1103
1104 static void compute_offsets();
1105 public:
1106 static oop create(objArrayHandle context, bool isPrivileged, Handle privileged_context, TRAPS);
|
1067 class java_dyn_CallSite: AllStatic {
1068 friend class JavaClasses;
1069
1070 private:
1071 static int _type_offset;
1072 static int _target_offset;
1073 static int _vmmethod_offset;
1074
1075 static void compute_offsets();
1076
1077 public:
1078 // Accessors
1079 static oop type(oop site);
1080
1081 static oop target(oop site);
1082 static void set_target(oop site, oop target);
1083
1084 static oop vmmethod(oop site);
1085 static void set_vmmethod(oop site, oop ref);
1086
1087 // Testers
1088 static bool is_subclass(klassOop klass) {
1089 return Klass::cast(klass)->is_subclass_of(SystemDictionary::CallSite_klass());
1090 }
1091 static bool is_instance(oop obj) {
1092 return obj != NULL && is_subclass(obj->klass());
1093 }
1094
1095 // Accessors for code generation:
1096 static int target_offset_in_bytes() { return _target_offset; }
1097 static int type_offset_in_bytes() { return _type_offset; }
1098 static int vmmethod_offset_in_bytes() { return _vmmethod_offset; }
1099 };
1100
1101
1102 // Interface to java.security.AccessControlContext objects
1103
1104 class java_security_AccessControlContext: AllStatic {
1105 private:
1106 // Note that for this class the layout changed between JDK1.2 and JDK1.3,
1107 // so we compute the offsets at startup rather than hard-wiring them.
1108 static int _context_offset;
1109 static int _privilegedContext_offset;
1110 static int _isPrivileged_offset;
1111
1112 static void compute_offsets();
1113 public:
1114 static oop create(objArrayHandle context, bool isPrivileged, Handle privileged_context, TRAPS);
|