Skip to content

Commit d8f7045

Browse files
committed
Merge in 'release/6.0' changes
2 parents 5e9fd16 + fe7335c commit d8f7045

File tree

4 files changed

+18
-25
lines changed

4 files changed

+18
-25
lines changed

src/native/corehost/bundle/file_entry.cpp

+9-6
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@ file_entry_t file_entry_t::read(reader_t &reader, uint32_t bundle_major_version,
1919
// First read the fixed-sized portion of file-entry
2020
file_entry_fixed_t fixed_data;
2121

22-
fixed_data.offset = *(int64_t*)reader.read_direct(sizeof(int64_t));
23-
fixed_data.size = *(int64_t*)reader.read_direct(sizeof(int64_t));
22+
// NB: the file data is potentially unaligned, thus we use "read" to fetch 64bit values
23+
reader.read(&fixed_data.offset, sizeof(int64_t));
24+
reader.read(&fixed_data.size, sizeof(int64_t));
2425

2526
// compressedSize is present only in v6+ headers
26-
fixed_data.compressedSize = bundle_major_version >= 6 ?
27-
*(int64_t*)reader.read_direct(sizeof(int64_t)) :
28-
0;
27+
fixed_data.compressedSize = 0;
28+
if (bundle_major_version >= 6)
29+
{
30+
reader.read(&fixed_data.compressedSize, sizeof(int64_t));
31+
}
2932

30-
fixed_data.type = *(file_type_t*)reader.read_direct(sizeof(file_type_t));
33+
fixed_data.type = (file_type_t)reader.read_byte();
3134

3235
file_entry_t entry(&fixed_data, force_extraction);
3336

src/native/corehost/bundle/header.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,23 @@ bool header_fixed_t::is_valid() const
2424

2525
header_t header_t::read(reader_t& reader)
2626
{
27-
const header_fixed_t* fixed_header = reinterpret_cast<const header_fixed_t*>(reader.read_direct(sizeof(header_fixed_t)));
27+
header_fixed_t fixed_header;
28+
reader.read(&fixed_header, sizeof(header_fixed_t));
2829

29-
if (!fixed_header->is_valid())
30+
if (!fixed_header.is_valid())
3031
{
3132
trace::error(_X("Failure processing application bundle."));
32-
trace::error(_X("Bundle header version compatibility check failed. Header version: %d.%d"), fixed_header->major_version, fixed_header->minor_version);
33+
trace::error(_X("Bundle header version compatibility check failed. Header version: %d.%d"), fixed_header.major_version, fixed_header.minor_version);
3334

3435
throw StatusCode::BundleExtractionFailure;
3536
}
3637

37-
header_t header(fixed_header->major_version, fixed_header->minor_version, fixed_header->num_embedded_files);
38+
header_t header(fixed_header.major_version, fixed_header.minor_version, fixed_header.num_embedded_files);
3839

3940
// bundle_id is a component of the extraction path
4041
reader.read_path_string(header.m_bundle_id);
4142

42-
const header_fixed_v2_t *v2_header = reinterpret_cast<const header_fixed_v2_t*>(reader.read_direct(sizeof(header_fixed_v2_t)));
43-
header.m_v2_header = *v2_header;
43+
reader.read(&header.m_v2_header, sizeof(header_fixed_v2_t));
4444

4545
return header;
4646
}

src/native/corehost/bundle/reader.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ size_t reader_t::read_path_length()
5454
{
5555
size_t length = 0;
5656

57-
int8_t first_byte = read();
57+
int8_t first_byte = read_byte();
5858

5959
// If the high bit is set, it means there are more bytes to read.
6060
if ((first_byte & 0x80) == 0)
@@ -63,7 +63,7 @@ size_t reader_t::read_path_length()
6363
}
6464
else
6565
{
66-
int8_t second_byte = read();
66+
int8_t second_byte = read_byte();
6767

6868
if (second_byte & 0x80)
6969
{

src/native/corehost/bundle/reader.h

+1-11
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ namespace bundle
8181
return m_ptr;
8282
}
8383

84-
int8_t read()
84+
int8_t read_byte()
8585
{
8686
bounds_check();
8787
return *m_ptr++;
@@ -100,16 +100,6 @@ namespace bundle
100100
m_ptr += len;
101101
}
102102

103-
// Return a pointer to the requested bytes within the memory-mapped file.
104-
// Skip over len bytes.
105-
const char* read_direct(int64_t len)
106-
{
107-
bounds_check(len);
108-
const char *ptr = m_ptr;
109-
m_ptr += len;
110-
return ptr;
111-
}
112-
113103
size_t read_path_length();
114104
size_t read_path_string(pal::string_t &str);
115105

0 commit comments

Comments
 (0)