| Index: base/win/pe_image.cc
|
| diff --git a/base/win/pe_image.cc b/base/win/pe_image.cc
|
| index 19b381d6fe6da271a0c2b02e52ac528bb0928889..692b7b665072d214f07c62e5c834b03f66173871 100644
|
| --- a/base/win/pe_image.cc
|
| +++ b/base/win/pe_image.cc
|
| @@ -568,12 +568,11 @@ bool PEImage::ImageAddrToOnDiskOffset(LPVOID address,
|
| if (NULL == section_header)
|
| return false;
|
|
|
| -#pragma warning(suppress : 4302) // pointer truncation
|
| - // These casts generate warnings because they are 32 bit specific.
|
| // Don't follow the virtual RVAToAddr, use the one on the base.
|
| - DWORD offset_within_section = reinterpret_cast<DWORD>(address) -
|
| - reinterpret_cast<DWORD>(PEImage::RVAToAddr(
|
| - section_header->VirtualAddress));
|
| + DWORD offset_within_section =
|
| + static_cast<DWORD>(reinterpret_cast<uintptr_t>(address)) -
|
| + static_cast<DWORD>(reinterpret_cast<uintptr_t>(
|
| + PEImage::RVAToAddr(section_header->VirtualAddress)));
|
|
|
| *on_disk_offset = section_header->PointerToRawData + offset_within_section;
|
| return true;
|
|
|