MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / map

Method map

ogsr_engine/xrCore/stream_reader.cpp:17–45  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15void CMapStreamReader::destroy() { unmap(); }
16
17void CMapStreamReader::map(const size_t& new_offset)
18{
19 VERIFY(new_offset <= m_file_size);
20 m_current_offset_from_start = new_offset;
21
22 const size_t granularity = FS.dwAllocGranularity;
23 size_t start_offset = m_start_offset + new_offset;
24 const size_t pure_start_offset = start_offset;
25 start_offset = (start_offset / granularity) * granularity;
26
27 VERIFY(pure_start_offset >= start_offset);
28 const size_t pure_end_offset = m_window_size + pure_start_offset;
29 size_t end_offset = pure_end_offset / granularity;
30 if (pure_end_offset % granularity)
31 ++end_offset;
32
33 end_offset *= granularity;
34 if (end_offset > m_archive_size)
35 end_offset = m_archive_size;
36
37 m_current_window_size = end_offset - start_offset;
38 m_current_map_view_of_file = static_cast<u8*>(MapViewOfFile(m_file_mapping_handle, FILE_MAP_READ, 0, start_offset, m_current_window_size));
39 m_current_pointer = m_current_map_view_of_file;
40
41 const size_t difference = pure_start_offset - start_offset;
42 m_current_window_size -= difference;
43 m_current_pointer += difference;
44 m_start_pointer = m_current_pointer;
45}
46
47void CMapStreamReader::advance(std::ptrdiff_t offset)
48{

Callers 1

script_vars_dumpFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected