diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2016-09-11 22:56:42 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2016-09-11 22:56:42 +0200 |
| commit | c6465bd8c6aca006bc7e980d5db08518659bae3c (patch) | |
| tree | d25a4b697640fd5cb38f000e8b2369525b7ef92b /le/le_file.cpp | |
| parent | 0828d0bf368d7e0bdc835062aad62bc336047350 (diff) | |
| download | openwar-c6465bd8c6aca006bc7e980d5db08518659bae3c.tar.gz openwar-c6465bd8c6aca006bc7e980d5db08518659bae3c.tar.bz2 openwar-c6465bd8c6aca006bc7e980d5db08518659bae3c.zip | |
Adds a Pages struct to the le::File which contains all pages.
Diffstat (limited to 'le/le_file.cpp')
| -rw-r--r-- | le/le_file.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/le/le_file.cpp b/le/le_file.cpp index 55478c8..2e0a9d5 100644 --- a/le/le_file.cpp +++ b/le/le_file.cpp @@ -25,6 +25,7 @@ BOOST_FUSION_ADAPT_STRUCT( (le::EntryTable, entry_table) (le::FixupPageTable, fixup_page_table) (le::FixupRecordTable, fixup_record_table) + (le::Pages, pages) ) namespace le { @@ -50,13 +51,14 @@ File parse_file(std::istream& is) { auto resource_table = parse_resource_table(is, le_offset + le_h.resource_table_offset, le_h.nr_resource_table_entries); auto fixup_page_table = parse_fixup_page_table(is, le_offset + le_h.fixup_page_table_offset, le_h.module_nr_of_pages + binparse::Value32(1)); auto fixup_record_table = parse_fixup_record_table(is, le_offset + le_h.fixup_record_table_offset, fixup_page_table); + auto pages = parse_pages(is, le_h.data_page_offset, le_h.module_nr_of_pages, le_h.page_size); return { mz_h, unused, OEM_id, OEM_info, - le_offset, + le_offset, dos_exe, le_h, object_table, @@ -66,7 +68,8 @@ File parse_file(std::istream& is) { resident_name_table, entry_table, fixup_page_table, - fixup_record_table + fixup_record_table, + pages }; } |
