175 // that existed during dump time. Their information is stored in _shared_path_table. 176 int _paths_misc_info_size; 177 178 // The following is a table of all the class path entries that were used 179 // during dumping. At run time, we require these files to exist and have the same 180 // size/modification time, or else the archive will refuse to load. 181 // 182 // All of these entries must be JAR files. The dumping process would fail if a non-empty 183 // directory was specified in the classpaths. If an empty directory was specified 184 // it is checked by the _paths_misc_info as described above. 185 // 186 // FIXME -- if JAR files in the tail of the list were specified but not used during dumping, 187 // they should be removed from this table, to save space and to avoid spurious 188 // loading failures during runtime. 189 int _shared_path_table_size; 190 size_t _shared_path_entry_size; 191 Array<u8>* _shared_path_table; 192 193 jshort _app_class_paths_start_index; // Index of first app classpath entry 194 jshort _app_module_paths_start_index; // Index of first module path entry 195 bool _verify_local; // BytecodeVerificationLocal setting 196 bool _verify_remote; // BytecodeVerificationRemote setting 197 bool _has_platform_or_app_classes; // Archive contains app classes 198 199 void set_has_platform_or_app_classes(bool v) { 200 _has_platform_or_app_classes = v; 201 } 202 bool has_platform_or_app_classes() { return _has_platform_or_app_classes; } 203 204 char* region_addr(int idx); 205 206 bool validate(); 207 void populate(FileMapInfo* info, size_t alignment); 208 int compute_crc(); 209 }; 210 211 FileMapHeader * _header; 212 213 const char* _full_path; 214 char* _paths_misc_info; 215 216 static FileMapInfo* _current_info; 217 218 bool init_from_file(int fd); 219 void align_file_position(); 220 bool validate_header_impl(); 221 static void metaspace_pointers_do(MetaspaceClosure* it); 222 | 175 // that existed during dump time. Their information is stored in _shared_path_table. 176 int _paths_misc_info_size; 177 178 // The following is a table of all the class path entries that were used 179 // during dumping. At run time, we require these files to exist and have the same 180 // size/modification time, or else the archive will refuse to load. 181 // 182 // All of these entries must be JAR files. The dumping process would fail if a non-empty 183 // directory was specified in the classpaths. If an empty directory was specified 184 // it is checked by the _paths_misc_info as described above. 185 // 186 // FIXME -- if JAR files in the tail of the list were specified but not used during dumping, 187 // they should be removed from this table, to save space and to avoid spurious 188 // loading failures during runtime. 189 int _shared_path_table_size; 190 size_t _shared_path_entry_size; 191 Array<u8>* _shared_path_table; 192 193 jshort _app_class_paths_start_index; // Index of first app classpath entry 194 jshort _app_module_paths_start_index; // Index of first module path entry 195 jshort _max_used_path_index; // max path index referenced during CDS dump 196 bool _verify_local; // BytecodeVerificationLocal setting 197 bool _verify_remote; // BytecodeVerificationRemote setting 198 bool _has_platform_or_app_classes; // Archive contains app classes 199 200 void set_has_platform_or_app_classes(bool v) { 201 _has_platform_or_app_classes = v; 202 } 203 bool has_platform_or_app_classes() { return _has_platform_or_app_classes; } 204 jshort max_used_path_index() { return _max_used_path_index; } 205 jshort app_module_paths_start_index() { return _app_module_paths_start_index; } 206 207 char* region_addr(int idx); 208 209 bool validate(); 210 void populate(FileMapInfo* info, size_t alignment); 211 int compute_crc(); 212 }; 213 214 FileMapHeader * _header; 215 216 const char* _full_path; 217 char* _paths_misc_info; 218 219 static FileMapInfo* _current_info; 220 221 bool init_from_file(int fd); 222 void align_file_position(); 223 bool validate_header_impl(); 224 static void metaspace_pointers_do(MetaspaceClosure* it); 225 |