--- old/src/hotspot/share/classfile/javaClasses.hpp 2019-01-10 15:10:50.965538021 +0100 +++ new/src/hotspot/share/classfile/javaClasses.hpp 2019-01-10 15:10:50.669537432 +0100 @@ -78,6 +78,8 @@ f(reflect_UnsafeStaticFieldAccessorImpl) \ f(java_lang_reflect_Parameter) \ f(java_lang_Module) \ + f(java_lang_module_ModuleDescriptor) \ + f(java_lang_module_ModuleDescriptor_Version) \ f(java_lang_StackTraceElement) \ f(java_lang_StackFrameInfo) \ f(java_lang_LiveStackFrameInfo) \ @@ -775,6 +777,7 @@ private: static int loader_offset; static int name_offset; + static int module_descriptor_offset; static int _module_entry_offset; static void compute_offsets(); @@ -794,11 +797,47 @@ static oop name(oop module); static void set_name(oop module, oop value); + static oop module_descriptor(oop module); + static ModuleEntry* module_entry(oop module); static void set_module_entry(oop module, ModuleEntry* module_entry); friend class JavaClasses; }; + +class java_lang_module_ModuleDescriptor { + private: + static int version_offset; + static void compute_offsets(); + + public: + static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; + + // Testers + static bool is_instance(oop obj); + + // Accessors + static oop version(oop module_descriptor); + + friend class JavaClasses; +}; + +class java_lang_module_ModuleDescriptor_Version { + private: + static int version_offset; + static void compute_offsets(); + + public: + static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; + + // Testers + static bool is_instance(oop obj); + + // Accessors + static oop version(oop module_descriptor_version); + + friend class JavaClasses; +}; // Interface to jdk.internal.reflect.ConstantPool objects class reflect_ConstantPool {