1473 public: 1474 static int limit_offset(); 1475 static void compute_offsets(); 1476 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1477 }; 1478 1479 class java_util_concurrent_locks_AbstractOwnableSynchronizer : AllStatic { 1480 private: 1481 static int _owner_offset; 1482 public: 1483 static void compute_offsets(); 1484 static oop get_owner_threadObj(oop obj); 1485 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1486 }; 1487 1488 class jdk_internal_module_ArchivedModuleGraph: AllStatic { 1489 private: 1490 static int _archivedSystemModules_offset; 1491 static int _archivedModuleFinder_offset; 1492 static int _archivedMainModule_offset; 1493 public: 1494 static int archivedSystemModules_offset() { return _archivedSystemModules_offset; } 1495 static int archivedModuleFinder_offset() { return _archivedModuleFinder_offset; } 1496 static int archivedMainModule_offset() { return _archivedMainModule_offset; } 1497 static void compute_offsets(); 1498 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1499 }; 1500 1501 // Use to declare fields that need to be injected into Java classes 1502 // for the JVM to use. The name_index and signature_index are 1503 // declared in vmSymbols. The may_be_java flag is used to declare 1504 // fields that might already exist in Java but should be injected if 1505 // they don't. Otherwise the field is unconditionally injected and 1506 // the JVM uses the injected one. This is to ensure that name 1507 // collisions don't occur. In general may_be_java should be false 1508 // unless there's a good reason. 1509 1510 class InjectedField { 1511 public: 1512 const SystemDictionary::WKID klass_id; 1513 const vmSymbols::SID name_index; 1514 const vmSymbols::SID signature_index; 1515 const bool may_be_java; 1516 | 1473 public: 1474 static int limit_offset(); 1475 static void compute_offsets(); 1476 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1477 }; 1478 1479 class java_util_concurrent_locks_AbstractOwnableSynchronizer : AllStatic { 1480 private: 1481 static int _owner_offset; 1482 public: 1483 static void compute_offsets(); 1484 static oop get_owner_threadObj(oop obj); 1485 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1486 }; 1487 1488 class jdk_internal_module_ArchivedModuleGraph: AllStatic { 1489 private: 1490 static int _archivedSystemModules_offset; 1491 static int _archivedModuleFinder_offset; 1492 static int _archivedMainModule_offset; 1493 static int _archivedConfiguration_offset; 1494 public: 1495 static int archivedSystemModules_offset() { return _archivedSystemModules_offset; } 1496 static int archivedModuleFinder_offset() { return _archivedModuleFinder_offset; } 1497 static int archivedMainModule_offset() { return _archivedMainModule_offset; } 1498 static int archivedConfiguration_offset() { return _archivedConfiguration_offset; } 1499 static void compute_offsets(); 1500 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1501 }; 1502 1503 class java_lang_module_Configuration: AllStatic { 1504 private: 1505 static int _EMPTY_CONFIGURATION_offset; 1506 public: 1507 static int EMPTY_CONFIGURATION_offset() { return _EMPTY_CONFIGURATION_offset; } 1508 static void compute_offsets(); 1509 static void serialize(SerializeClosure* f) NOT_CDS_RETURN; 1510 }; 1511 1512 // Use to declare fields that need to be injected into Java classes 1513 // for the JVM to use. The name_index and signature_index are 1514 // declared in vmSymbols. The may_be_java flag is used to declare 1515 // fields that might already exist in Java but should be injected if 1516 // they don't. Otherwise the field is unconditionally injected and 1517 // the JVM uses the injected one. This is to ensure that name 1518 // collisions don't occur. In general may_be_java should be false 1519 // unless there's a good reason. 1520 1521 class InjectedField { 1522 public: 1523 const SystemDictionary::WKID klass_id; 1524 const vmSymbols::SID name_index; 1525 const vmSymbols::SID signature_index; 1526 const bool may_be_java; 1527 |