From: Amine Khaldi Date: Wed, 11 Apr 2018 11:36:44 +0000 (+0100) Subject: [KERNEL32/WINE] Sync res.c with Wine Staging 3.3. CORE-14434 X-Git-Tag: 0.4.9-RC~218 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=6d262f1ee4dfa76641d625dcab47724ee7de06f7 [KERNEL32/WINE] Sync res.c with Wine Staging 3.3. CORE-14434 --- diff --git a/dll/win32/kernel32/wine/res.c b/dll/win32/kernel32/wine/res.c index d6b0e5ea54e..971d27a1924 100644 --- a/dll/win32/kernel32/wine/res.c +++ b/dll/win32/kernel32/wine/res.c @@ -1383,7 +1383,7 @@ static BOOL write_raw_resources( QUEUEDUPDATES *updates ) { static const WCHAR prefix[] = { 'r','e','s','u',0 }; WCHAR tempdir[MAX_PATH], tempfile[MAX_PATH]; - DWORD section_size; + DWORD i, section_size; BOOL ret = FALSE; IMAGE_SECTION_HEADER *sec; IMAGE_NT_HEADERS32 *nt; @@ -1567,11 +1567,19 @@ static BOOL write_raw_resources( QUEUEDUPDATES *updates ) nt64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = sec->VirtualAddress; nt64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = res_size.total_size; nt64->OptionalHeader.SizeOfInitializedData = get_init_data_size( write_map->base, mapping_size ); + + for (i=0; iOptionalHeader.NumberOfRvaAndSizes; i++) + if (nt64->OptionalHeader.DataDirectory[i].VirtualAddress > sec->VirtualAddress) + nt64->OptionalHeader.DataDirectory[i].VirtualAddress += rva_delta; } else { nt->OptionalHeader.SizeOfImage += rva_delta; nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = sec->VirtualAddress; nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = res_size.total_size; nt->OptionalHeader.SizeOfInitializedData = get_init_data_size( write_map->base, mapping_size ); + + for (i=0; iOptionalHeader.NumberOfRvaAndSizes; i++) + if (nt->OptionalHeader.DataDirectory[i].VirtualAddress > sec->VirtualAddress) + nt->OptionalHeader.DataDirectory[i].VirtualAddress += rva_delta; } } diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 7580f000a69..8cf47655b27 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -274,7 +274,7 @@ kernel32 - reactos/dll/win32/kernel32/wine/comm.c # Synced in r52754 reactos/dll/win32/kernel32/wine/lzexpand.c # Synced to WineStaging-3.3 reactos/dll/win32/kernel32/wine/profile.c # Synced to WineStaging-3.3 - reactos/dll/win32/kernel32/wine/res.c # Partially synced to WineStaging-1.7.55 + reactos/dll/win32/kernel32/wine/res.c # Partially synced to WineStaging-3.3 reactos/dll/win32/kernel32/winnls/string/casemap.c # Synced to WineStaging-1.7.55 reactos/dll/win32/kernel32/winnls/string/chartype.c # Synced in r52754 reactos/dll/win32/kernel32/winnls/string/collation.c # Synced to WineStaging-1.7.55