{
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;
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; i<nt64->OptionalHeader.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; i<nt->OptionalHeader.NumberOfRvaAndSizes; i++)
+ if (nt->OptionalHeader.DataDirectory[i].VirtualAddress > sec->VirtualAddress)
+ nt->OptionalHeader.DataDirectory[i].VirtualAddress += rva_delta;
}
}
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