1255 1256 static bool is_authorized(Handle context); 1257 1258 // Debugging/initialization 1259 friend class JavaClasses; 1260 }; 1261 1262 1263 // Interface to java.lang.ClassLoader objects 1264 1265 #define CLASSLOADER_INJECTED_FIELDS(macro) \ 1266 macro(java_lang_ClassLoader, loader_data, intptr_signature, false) 1267 1268 class java_lang_ClassLoader : AllStatic { 1269 private: 1270 static int _loader_data_offset; 1271 static bool offsets_computed; 1272 static int parent_offset; 1273 static int parallelCapable_offset; 1274 static int name_offset; 1275 static int unnamedModule_offset; 1276 1277 public: 1278 static void compute_offsets(); 1279 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1280 1281 static ClassLoaderData* loader_data(oop loader); 1282 static ClassLoaderData* cmpxchg_loader_data(ClassLoaderData* new_data, oop loader, ClassLoaderData* expected_data); 1283 1284 static oop parent(oop loader); 1285 static oop name(oop loader); 1286 static bool isAncestor(oop loader, oop cl); 1287 1288 // Support for parallelCapable field 1289 static bool parallelCapable(oop the_class_mirror); 1290 1291 static bool is_trusted_loader(oop loader); 1292 1293 // Return true if this is one of the class loaders associated with 1294 // the generated bytecodes for reflection. 1295 static bool is_reflection_class_loader(oop loader); 1296 1297 // Fix for 4474172 1298 static oop non_reflection_class_loader(oop loader); 1299 1300 // Testers 1301 static bool is_subclass(Klass* klass) { 1302 return klass->is_subclass_of(SystemDictionary::ClassLoader_klass()); 1303 } 1304 static bool is_instance(oop obj); 1305 | 1255 1256 static bool is_authorized(Handle context); 1257 1258 // Debugging/initialization 1259 friend class JavaClasses; 1260 }; 1261 1262 1263 // Interface to java.lang.ClassLoader objects 1264 1265 #define CLASSLOADER_INJECTED_FIELDS(macro) \ 1266 macro(java_lang_ClassLoader, loader_data, intptr_signature, false) 1267 1268 class java_lang_ClassLoader : AllStatic { 1269 private: 1270 static int _loader_data_offset; 1271 static bool offsets_computed; 1272 static int parent_offset; 1273 static int parallelCapable_offset; 1274 static int name_offset; 1275 static int nameAndId_offset; 1276 static int unnamedModule_offset; 1277 1278 public: 1279 static void compute_offsets(); 1280 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1281 1282 static ClassLoaderData* loader_data(oop loader); 1283 static ClassLoaderData* cmpxchg_loader_data(ClassLoaderData* new_data, oop loader, ClassLoaderData* expected_data); 1284 1285 static oop parent(oop loader); 1286 static oop name(oop loader); 1287 static oop nameAndId(oop loader); 1288 static bool isAncestor(oop loader, oop cl); 1289 1290 // Support for parallelCapable field 1291 static bool parallelCapable(oop the_class_mirror); 1292 1293 static bool is_trusted_loader(oop loader); 1294 1295 // Return true if this is one of the class loaders associated with 1296 // the generated bytecodes for reflection. 1297 static bool is_reflection_class_loader(oop loader); 1298 1299 // Fix for 4474172 1300 static oop non_reflection_class_loader(oop loader); 1301 1302 // Testers 1303 static bool is_subclass(Klass* klass) { 1304 return klass->is_subclass_of(SystemDictionary::ClassLoader_klass()); 1305 } 1306 static bool is_instance(oop obj); 1307 |