1305 1306 // Interface to java.lang.ClassLoader objects 1307 1308 #define CLASSLOADER_INJECTED_FIELDS(macro) \ 1309 macro(java_lang_ClassLoader, loader_data, intptr_signature, false) 1310 1311 class java_lang_ClassLoader : AllStatic { 1312 private: 1313 static int _loader_data_offset; 1314 static bool offsets_computed; 1315 static int parent_offset; 1316 static int parallelCapable_offset; 1317 static int name_offset; 1318 static int nameAndId_offset; 1319 static int unnamedModule_offset; 1320 1321 public: 1322 static void compute_offsets(); 1323 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 1324 1325 static ClassLoaderData* loader_data(oop loader); 1326 static ClassLoaderData* loader_data_raw(oop loader); 1327 static ClassLoaderData* cmpxchg_loader_data(ClassLoaderData* new_data, oop loader, ClassLoaderData* expected_data); 1328 1329 static oop parent(oop loader); 1330 static oop name(oop loader); 1331 static oop nameAndId(oop loader); 1332 static bool isAncestor(oop loader, oop cl); 1333 1334 // Support for parallelCapable field 1335 static bool parallelCapable(oop the_class_mirror); 1336 1337 static bool is_trusted_loader(oop loader); 1338 1339 // Return true if this is one of the class loaders associated with 1340 // the generated bytecodes for reflection. 1341 static bool is_reflection_class_loader(oop loader); 1342 1343 // Fix for 4474172 1344 static oop non_reflection_class_loader(oop loader); 1345 1346 // Testers 1347 static bool is_subclass(Klass* klass) { | 1305 1306 // Interface to java.lang.ClassLoader objects 1307 1308 #define CLASSLOADER_INJECTED_FIELDS(macro) \ 1309 macro(java_lang_ClassLoader, loader_data, intptr_signature, false) 1310 1311 class java_lang_ClassLoader : AllStatic { 1312 private: 1313 static int _loader_data_offset; 1314 static bool offsets_computed; 1315 static int parent_offset; 1316 static int parallelCapable_offset; 1317 static int name_offset; 1318 static int nameAndId_offset; 1319 static int unnamedModule_offset; 1320 1321 public: 1322 static void compute_offsets(); 1323 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 1324 1325 static ClassLoaderData* loader_data_acquire(oop loader); 1326 static ClassLoaderData* loader_data_raw(oop loader); 1327 static void release_set_loader_data(oop loader, ClassLoaderData* new_data); 1328 1329 static oop parent(oop loader); 1330 static oop name(oop loader); 1331 static oop nameAndId(oop loader); 1332 static bool isAncestor(oop loader, oop cl); 1333 1334 // Support for parallelCapable field 1335 static bool parallelCapable(oop the_class_mirror); 1336 1337 static bool is_trusted_loader(oop loader); 1338 1339 // Return true if this is one of the class loaders associated with 1340 // the generated bytecodes for reflection. 1341 static bool is_reflection_class_loader(oop loader); 1342 1343 // Fix for 4474172 1344 static oop non_reflection_class_loader(oop loader); 1345 1346 // Testers 1347 static bool is_subclass(Klass* klass) { |