1164 // Accessors for code generation: 1165 static int rtype_offset_in_bytes() { return _rtype_offset; } 1166 static int ptypes_offset_in_bytes() { return _ptypes_offset; } 1167 }; 1168 1169 1170 // Interface to java.lang.invoke.CallSite objects 1171 1172 class java_lang_invoke_CallSite: AllStatic { 1173 friend class JavaClasses; 1174 1175 private: 1176 static int _target_offset; 1177 1178 static void compute_offsets(); 1179 1180 public: 1181 // Accessors 1182 static oop target( oop site); 1183 static void set_target( oop site, oop target); 1184 1185 static volatile oop target_volatile(oop site); 1186 static void set_target_volatile(oop site, oop target); 1187 1188 // Testers 1189 static bool is_subclass(Klass* klass) { 1190 return klass->is_subclass_of(SystemDictionary::CallSite_klass()); 1191 } 1192 static bool is_instance(oop obj); 1193 1194 // Accessors for code generation: 1195 static int target_offset_in_bytes() { return _target_offset; } 1196 }; 1197 1198 1199 // Interface to java.security.AccessControlContext objects 1200 1201 class java_security_AccessControlContext: AllStatic { 1202 private: 1203 // Note that for this class the layout changed between JDK1.2 and JDK1.3, 1204 // so we compute the offsets at startup rather than hard-wiring them. 1205 static int _context_offset; | 1164 // Accessors for code generation: 1165 static int rtype_offset_in_bytes() { return _rtype_offset; } 1166 static int ptypes_offset_in_bytes() { return _ptypes_offset; } 1167 }; 1168 1169 1170 // Interface to java.lang.invoke.CallSite objects 1171 1172 class java_lang_invoke_CallSite: AllStatic { 1173 friend class JavaClasses; 1174 1175 private: 1176 static int _target_offset; 1177 1178 static void compute_offsets(); 1179 1180 public: 1181 // Accessors 1182 static oop target( oop site); 1183 static void set_target( oop site, oop target); 1184 static void set_target_volatile(oop site, oop target); 1185 1186 // Testers 1187 static bool is_subclass(Klass* klass) { 1188 return klass->is_subclass_of(SystemDictionary::CallSite_klass()); 1189 } 1190 static bool is_instance(oop obj); 1191 1192 // Accessors for code generation: 1193 static int target_offset_in_bytes() { return _target_offset; } 1194 }; 1195 1196 1197 // Interface to java.security.AccessControlContext objects 1198 1199 class java_security_AccessControlContext: AllStatic { 1200 private: 1201 // Note that for this class the layout changed between JDK1.2 and JDK1.3, 1202 // so we compute the offsets at startup rather than hard-wiring them. 1203 static int _context_offset; |