Skip to content

Commit 8747882

Browse files
committed
8276790: Rename GenericCDSFileMapHeader::_base_archive_path_offset
Reviewed-by: dholmes, ccheung
1 parent 38e6d5d commit 8747882

File tree

7 files changed

+60
-60
lines changed

7 files changed

+60
-60
lines changed

src/hotspot/share/cds/cdsConstants.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ CDSConst CDSConstants::offsets[] = {
3535
{ "GenericCDSFileMapHeader::_crc", offset_of(GenericCDSFileMapHeader, _crc) },
3636
{ "GenericCDSFileMapHeader::_version", offset_of(GenericCDSFileMapHeader, _version) },
3737
{ "GenericCDSFileMapHeader::_header_size", offset_of(GenericCDSFileMapHeader, _header_size) },
38-
{ "GenericCDSFileMapHeader::_base_archive_path_offset", offset_of(GenericCDSFileMapHeader, _base_archive_path_offset) },
38+
{ "GenericCDSFileMapHeader::_base_archive_name_offset", offset_of(GenericCDSFileMapHeader, _base_archive_name_offset) },
3939
{ "GenericCDSFileMapHeader::_base_archive_name_size", offset_of(GenericCDSFileMapHeader, _base_archive_name_size) },
4040
{ "CDSFileMapHeaderBase::_space[0]", offset_of(CDSFileMapHeaderBase, _space) },
4141
{ "FileMapHeader::_jvm_ident", offset_of(FileMapHeader, _jvm_ident) },

src/hotspot/share/cds/filemap.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ void FileMapInfo::populate_header(size_t core_region_alignment) {
196196
size_t c_header_size;
197197
size_t header_size;
198198
size_t base_archive_name_size = 0;
199-
size_t base_archive_path_offset = 0;
199+
size_t base_archive_name_offset = 0;
200200
if (is_static()) {
201201
c_header_size = sizeof(FileMapHeader);
202202
header_size = c_header_size;
@@ -207,7 +207,7 @@ void FileMapInfo::populate_header(size_t core_region_alignment) {
207207
if (!FLAG_IS_DEFAULT(SharedArchiveFile)) {
208208
base_archive_name_size = strlen(Arguments::GetSharedArchivePath()) + 1;
209209
header_size += base_archive_name_size;
210-
base_archive_path_offset = c_header_size;
210+
base_archive_name_offset = c_header_size;
211211
}
212212
}
213213
_header = (FileMapHeader*)os::malloc(header_size, mtInternal);
@@ -216,17 +216,17 @@ void FileMapInfo::populate_header(size_t core_region_alignment) {
216216
core_region_alignment,
217217
header_size,
218218
base_archive_name_size,
219-
base_archive_path_offset);
219+
base_archive_name_offset);
220220
}
221221

222222
void FileMapHeader::populate(FileMapInfo *info, size_t core_region_alignment,
223223
size_t header_size, size_t base_archive_name_size,
224-
size_t base_archive_path_offset) {
224+
size_t base_archive_name_offset) {
225225
// 1. We require _generic_header._magic to be at the beginning of the file
226226
// 2. FileMapHeader also assumes that _generic_header is at the beginning of the file
227227
assert(offset_of(FileMapHeader, _generic_header) == 0, "must be");
228228
set_header_size((unsigned int)header_size);
229-
set_base_archive_path_offset((unsigned int)base_archive_path_offset);
229+
set_base_archive_name_offset((unsigned int)base_archive_name_offset);
230230
set_base_archive_name_size((unsigned int)base_archive_name_size);
231231
set_magic(DynamicDumpSharedSpaces ? CDS_DYNAMIC_ARCHIVE_MAGIC : CDS_ARCHIVE_MAGIC);
232232
set_version(CURRENT_CDS_ARCHIVE_VERSION);
@@ -280,9 +280,9 @@ void FileMapHeader::populate(FileMapInfo *info, size_t core_region_alignment,
280280

281281
void FileMapHeader::copy_base_archive_name(const char* archive) {
282282
assert(base_archive_name_size() != 0, "_base_archive_name_size not set");
283-
assert(base_archive_path_offset() != 0, "_base_archive_path_offset not set");
283+
assert(base_archive_name_offset() != 0, "_base_archive_name_offset not set");
284284
assert(header_size() > sizeof(*this), "_base_archive_name_size not included in header size?");
285-
memcpy((char*)this + base_archive_path_offset(), archive, base_archive_name_size());
285+
memcpy((char*)this + base_archive_name_offset(), archive, base_archive_name_size());
286286
}
287287

288288
void FileMapHeader::print(outputStream* st) {
@@ -292,7 +292,7 @@ void FileMapHeader::print(outputStream* st) {
292292
st->print_cr("- crc: 0x%08x", crc());
293293
st->print_cr("- version: %d", version());
294294
st->print_cr("- header_size: " UINT32_FORMAT, header_size());
295-
st->print_cr("- base_archive_path_offset: " UINT32_FORMAT, base_archive_path_offset());
295+
st->print_cr("- base_archive_name_offset: " UINT32_FORMAT, base_archive_name_offset());
296296
st->print_cr("- base_archive_name_size: " UINT32_FORMAT, base_archive_name_size());
297297

298298
for (int i = 0; i < NUM_CDS_REGIONS; i++) {
@@ -1088,7 +1088,7 @@ class FileHeaderHelper {
10881088
size_t name_size = _header._base_archive_name_size;
10891089
assert(name_size != 0, "For non-default base archive, name size should be non-zero!");
10901090
char* base_name = NEW_C_HEAP_ARRAY(char, name_size, mtInternal);
1091-
lseek(_fd, _header._base_archive_path_offset, SEEK_SET); // position to correct offset.
1091+
lseek(_fd, _header._base_archive_name_offset, SEEK_SET); // position to correct offset.
10921092
size_t n = os::read(_fd, base_name, (unsigned int)name_size);
10931093
if (n != name_size) {
10941094
log_info(cds)("Unable to read base archive name from archive");
@@ -1124,9 +1124,9 @@ bool FileMapInfo::check_archive(const char* archive_name, bool is_static) {
11241124
vm_exit_during_initialization("Not a base shared archive", archive_name);
11251125
return false;
11261126
}
1127-
if (header->_base_archive_path_offset != 0) {
1128-
log_info(cds)("_base_archive_path_offset should be 0");
1129-
log_info(cds)("_base_archive_path_offset = " UINT32_FORMAT, header->_base_archive_path_offset);
1127+
if (header->_base_archive_name_offset != 0) {
1128+
log_info(cds)("_base_archive_name_offset should be 0");
1129+
log_info(cds)("_base_archive_name_offset = " UINT32_FORMAT, header->_base_archive_name_offset);
11301130
return false;
11311131
}
11321132
} else {
@@ -1135,12 +1135,12 @@ bool FileMapInfo::check_archive(const char* archive_name, bool is_static) {
11351135
return false;
11361136
}
11371137
unsigned int name_size = header->_base_archive_name_size;
1138-
unsigned int path_offset = header->_base_archive_path_offset;
1138+
unsigned int name_offset = header->_base_archive_name_offset;
11391139
unsigned int header_size = header->_header_size;
1140-
if (path_offset + name_size != header_size) {
1141-
log_info(cds)("_header_size should be equal to _base_archive_path_offset plus _base_archive_name_size");
1140+
if (name_offset + name_size != header_size) {
1141+
log_info(cds)("_header_size should be equal to _base_archive_name_offset plus _base_archive_name_size");
11421142
log_info(cds)(" _base_archive_name_size = " UINT32_FORMAT, name_size);
1143-
log_info(cds)(" _base_archive_path_offset = " UINT32_FORMAT, path_offset);
1143+
log_info(cds)(" _base_archive_name_offset = " UINT32_FORMAT, name_offset);
11441144
log_info(cds)(" _header_size = " UINT32_FORMAT, header_size);
11451145
return false;
11461146
}
@@ -1165,13 +1165,13 @@ bool FileMapInfo::get_base_archive_name_from_header(const char* archive_name,
11651165
return false;
11661166
}
11671167

1168-
if ((header->_base_archive_name_size == 0 && header->_base_archive_path_offset != 0) ||
1169-
(header->_base_archive_name_size != 0 && header->_base_archive_path_offset == 0)) {
1168+
if ((header->_base_archive_name_size == 0 && header->_base_archive_name_offset != 0) ||
1169+
(header->_base_archive_name_size != 0 && header->_base_archive_name_offset == 0)) {
11701170
fail_continue("Default base archive not set correct");
11711171
return false;
11721172
}
11731173
if (header->_base_archive_name_size == 0 &&
1174-
header->_base_archive_path_offset == 0) {
1174+
header->_base_archive_name_offset == 0) {
11751175
*base_archive_name = Arguments::get_default_shared_archive_path();
11761176
} else {
11771177
// read the base archive name
@@ -1217,14 +1217,14 @@ bool FileMapInfo::init_from_file(int fd) {
12171217
return false;
12181218
}
12191219

1220-
unsigned int base_offset = header()->base_archive_path_offset();
1220+
unsigned int base_offset = header()->base_archive_name_offset();
12211221
unsigned int name_size = header()->base_archive_name_size();
12221222
unsigned int header_size = header()->header_size();
12231223
if (base_offset != 0 && name_size != 0) {
12241224
if (header_size != base_offset + name_size) {
12251225
log_info(cds)("_header_size: " UINT32_FORMAT, header_size);
12261226
log_info(cds)("base_archive_name_size: " UINT32_FORMAT, name_size);
1227-
log_info(cds)("base_archive_path_offset: " UINT32_FORMAT, base_offset);
1227+
log_info(cds)("base_archive_name_offset: " UINT32_FORMAT, base_offset);
12281228
FileMapInfo::fail_continue("The shared archive file has an incorrect header size.");
12291229
return false;
12301230
}

src/hotspot/share/cds/filemap.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,14 +243,14 @@ class FileMapHeader: private CDSFileMapHeaderBase {
243243
int crc() const { return _generic_header._crc; }
244244
int version() const { return _generic_header._version; }
245245
unsigned int header_size() const { return _generic_header._header_size; }
246-
unsigned int base_archive_path_offset() const { return _generic_header._base_archive_path_offset; }
246+
unsigned int base_archive_name_offset() const { return _generic_header._base_archive_name_offset; }
247247
unsigned int base_archive_name_size() const { return _generic_header._base_archive_name_size; }
248248

249249
void set_magic(unsigned int m) { _generic_header._magic = m; }
250250
void set_crc(int crc_value) { _generic_header._crc = crc_value; }
251251
void set_version(int v) { _generic_header._version = v; }
252252
void set_header_size(unsigned int s) { _generic_header._header_size = s; }
253-
void set_base_archive_path_offset(unsigned int s) { _generic_header._base_archive_path_offset = s; }
253+
void set_base_archive_name_offset(unsigned int s) { _generic_header._base_archive_name_offset = s; }
254254
void set_base_archive_name_size(unsigned int s) { _generic_header._base_archive_name_size = s; }
255255

256256
size_t core_region_alignment() const { return _core_region_alignment; }
@@ -313,7 +313,7 @@ class FileMapHeader: private CDSFileMapHeaderBase {
313313
}
314314

315315
void populate(FileMapInfo *info, size_t core_region_alignment, size_t header_size,
316-
size_t base_archive_name_size, size_t base_archive_path_offset);
316+
size_t base_archive_name_size, size_t base_archive_name_offset);
317317
static bool is_valid_region(int region) {
318318
return (0 <= region && region < NUM_CDS_REGIONS);
319319
}

src/hotspot/share/include/cds.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ typedef struct GenericCDSFileMapHeader {
6767
int _crc; // header crc checksum
6868
int _version; // CURRENT_CDS_ARCHIVE_VERSION of the jdk that dumped the this archive
6969
unsigned int _header_size; // total size of the header, in bytes
70-
unsigned int _base_archive_path_offset; // offset where the base archive name is stored
70+
unsigned int _base_archive_name_offset; // offset where the base archive name is stored
7171
// static archive: 0
7272
// dynamic archive:
7373
// 0 for default base archive
7474
// non-zero for non-default base archive
75-
// (char*)this + _base_archive_path_offset
75+
// (char*)this + _base_archive_name_offset
7676
// points to a 0-terminated string for the base archive name
7777
unsigned int _base_archive_name_size; // size of base archive name including ending '\0'
7878
// static: 0

test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -222,15 +222,15 @@ public static void main(String... args) throws Exception {
222222
CDSArchiveUtils.modifyRegionContentRandomly(copiedJsa);
223223
testAndCheck(verifyExecArgs);
224224

225-
// modify _base_archive_path_offet to non-zero
226-
System.out.println("\n8. modify _base_archive_path_offset to non-zero\n");
227-
String baseArchivePathOffsetName = startNewArchive("base-arhive-path-offset");
228-
copiedJsa = CDSArchiveUtils.copyArchiveFile(orgJsaFile, baseArchivePathOffsetName);
229-
int baseArchivePathOffset = CDSArchiveUtils.baseArchivePathOffset(copiedJsa);
230-
System.out.println(" baseArchivePathOffset = " + baseArchivePathOffset);
231-
CDSArchiveUtils.writeData(copiedJsa, CDSArchiveUtils.offsetBaseArchivePathOffset(), 1024);
232-
baseArchivePathOffset = CDSArchiveUtils.baseArchivePathOffset(copiedJsa);
233-
System.out.println("new baseArchivePathOffset = " + baseArchivePathOffset);
225+
// modify _base_archive_name_offet to non-zero
226+
System.out.println("\n8. modify _base_archive_name_offset to non-zero\n");
227+
String baseArchiveNameOffsetName = startNewArchive("base-arhive-path-offset");
228+
copiedJsa = CDSArchiveUtils.copyArchiveFile(orgJsaFile, baseArchiveNameOffsetName);
229+
int baseArchiveNameOffset = CDSArchiveUtils.baseArchiveNameOffset(copiedJsa);
230+
System.out.println(" baseArchiveNameOffset = " + baseArchiveNameOffset);
231+
CDSArchiveUtils.writeData(copiedJsa, CDSArchiveUtils.offsetBaseArchiveNameOffset(), 1024);
232+
baseArchiveNameOffset = CDSArchiveUtils.baseArchiveNameOffset(copiedJsa);
233+
System.out.println("new baseArchiveNameOffset = " + baseArchiveNameOffset);
234234
testAndCheck(verifyExecArgs);
235235
}
236236
}

test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -112,31 +112,31 @@ private static void doTest(String baseArchiveName, String topArchiveName) throws
112112
CDSArchiveUtils.modifyHeaderIntField(copiedJsa, CDSArchiveUtils.offsetHeaderSize(), (int)copiedJsa.length() + 1024);
113113
runTwo(baseArchiveName, largerHeaderSize,
114114
appJar, mainClass, 1,
115-
new String[] {"_header_size should be equal to _base_archive_path_offset plus _base_archive_name_size",
115+
new String[] {"_header_size should be equal to _base_archive_name_offset plus _base_archive_name_size",
116116
"Unable to use shared archive"});
117117

118118
// 3. Make base archive path offset beyond of header size
119119
System.out.println("\n3. Make base archive path offset beyond of header size.");
120-
String wrongBaseArchivePathOffset = getNewArchiveName("wrongBaseArchivePathOffset");
121-
copiedJsa = CDSArchiveUtils.copyArchiveFile(jsa, wrongBaseArchivePathOffset);
120+
String wrongBaseArchiveNameOffset = getNewArchiveName("wrongBaseArchiveNameOffset");
121+
copiedJsa = CDSArchiveUtils.copyArchiveFile(jsa, wrongBaseArchiveNameOffset);
122122
int fileHeaderSize = (int)CDSArchiveUtils.fileHeaderSize(copiedJsa);
123-
int baseArchivePathOffset = CDSArchiveUtils.baseArchivePathOffset(copiedJsa);
124-
CDSArchiveUtils.modifyHeaderIntField(copiedJsa, CDSArchiveUtils.offsetBaseArchivePathOffset(), baseArchivePathOffset + 1024);
125-
runTwo(baseArchiveName, wrongBaseArchivePathOffset,
123+
int baseArchiveNameOffset = CDSArchiveUtils.baseArchiveNameOffset(copiedJsa);
124+
CDSArchiveUtils.modifyHeaderIntField(copiedJsa, CDSArchiveUtils.offsetBaseArchiveNameOffset(), baseArchiveNameOffset + 1024);
125+
runTwo(baseArchiveName, wrongBaseArchiveNameOffset,
126126
appJar, mainClass, 1,
127-
new String[] {"_header_size should be equal to _base_archive_path_offset plus _base_archive_name_size",
127+
new String[] {"_header_size should be equal to _base_archive_name_offset plus _base_archive_name_size",
128128
"The shared archive file has an incorrect header size",
129129
"Unable to use shared archive"});
130130

131131
// 4. Make base archive path offset points to middle of name size
132132
System.out.println("\n4. Make base archive path offset points to middle of name size");
133-
String wrongBasePathOffset = getNewArchiveName("wrongBasePathOffset");
134-
copiedJsa = CDSArchiveUtils.copyArchiveFile(jsa, wrongBasePathOffset);
133+
String wrongBaseNameOffset = getNewArchiveName("wrongBaseNameOffset");
134+
copiedJsa = CDSArchiveUtils.copyArchiveFile(jsa, wrongBaseNameOffset);
135135
int baseArchiveNameSize = CDSArchiveUtils.baseArchiveNameSize(copiedJsa);
136-
baseArchivePathOffset = CDSArchiveUtils.baseArchivePathOffset(copiedJsa);
137-
CDSArchiveUtils.modifyHeaderIntField(copiedJsa, baseArchivePathOffset,
138-
baseArchivePathOffset + baseArchiveNameSize/2);
139-
runTwo(baseArchiveName, wrongBasePathOffset,
136+
baseArchiveNameOffset = CDSArchiveUtils.baseArchiveNameOffset(copiedJsa);
137+
CDSArchiveUtils.modifyHeaderIntField(copiedJsa, baseArchiveNameOffset,
138+
baseArchiveNameOffset + baseArchiveNameSize/2);
139+
runTwo(baseArchiveName, wrongBaseNameOffset,
140140
appJar, mainClass, 1,
141141
new String[] {"An error has occurred while processing the shared archive file.",
142142
"Header checksum verification failed",
@@ -146,9 +146,9 @@ private static void doTest(String baseArchiveName, String topArchiveName) throws
146146
System.out.println("\n5. Make base archive name not terminated with '\0'");
147147
String wrongBaseName = getNewArchiveName("wrongBaseName");
148148
copiedJsa = CDSArchiveUtils.copyArchiveFile(jsa, wrongBaseName);
149-
baseArchivePathOffset = CDSArchiveUtils.baseArchivePathOffset(copiedJsa);
149+
baseArchiveNameOffset = CDSArchiveUtils.baseArchiveNameOffset(copiedJsa);
150150
baseArchiveNameSize = CDSArchiveUtils.baseArchiveNameSize(copiedJsa);
151-
long offset = baseArchivePathOffset + baseArchiveNameSize - 1; // end of line
151+
long offset = baseArchiveNameOffset + baseArchiveNameSize - 1; // end of line
152152
CDSArchiveUtils.writeData(copiedJsa, offset, new byte[] {(byte)'X'});
153153

154154
runTwo(baseArchiveName, wrongBaseName,
@@ -160,9 +160,9 @@ private static void doTest(String baseArchiveName, String topArchiveName) throws
160160
System.out.println("\n6. Modify base archive name to a file that doesn't exist");
161161
String wrongBaseName2 = getNewArchiveName("wrongBaseName2");
162162
copiedJsa = CDSArchiveUtils.copyArchiveFile(jsa, wrongBaseName2);
163-
baseArchivePathOffset = CDSArchiveUtils.baseArchivePathOffset(copiedJsa);
163+
baseArchiveNameOffset = CDSArchiveUtils.baseArchiveNameOffset(copiedJsa);
164164
baseArchiveNameSize = CDSArchiveUtils.baseArchiveNameSize(copiedJsa);
165-
offset = baseArchivePathOffset + baseArchiveNameSize - 2; // the "a" in ".jsa"
165+
offset = baseArchiveNameOffset + baseArchiveNameSize - 2; // the "a" in ".jsa"
166166
CDSArchiveUtils.writeData(copiedJsa, offset, new byte[] {(byte)'b'}); // .jsa -> .jsb
167167

168168
// Make sure it doesn't exist

0 commit comments

Comments
 (0)