From 2d7d1608381a4c14822e50ae42e2a6d748842cc3 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 1 Oct 2012 13:37:37 +0200 Subject: [PATCH] Clean up the Windows x64 changes. nt/preprep.c (RVA_TO_PTR): Use 'unsigned char *' instead of 'void *', for pointer arithmetics. (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET): Enclose all macro arguments in parentheses. src/unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET) (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses. (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *', as the previous version used 'void *'. src/ralloc.c (ROUNDUP): Fix last change. (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type 'size_t'. Fixes: debbugs:12544 --- nt/ChangeLog | 7 +++++++ nt/preprep.c | 8 ++++---- src/ChangeLog | 9 +++++++++ src/ralloc.c | 4 ++-- src/unexw32.c | 8 ++++---- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/nt/ChangeLog b/nt/ChangeLog index 7247b18e08..42171de032 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,10 @@ +2012-10-01 Eli Zaretskii + + * preprep.c (RVA_TO_PTR): Use 'unsigned char *' instead of + 'void *', for pointer arithmetics. + (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET): Enclose all + macro arguments in parentheses. + 2012-09-30 Eli Zaretskii * makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST). diff --git a/nt/preprep.c b/nt/preprep.c index 9824cda0b5..5a632b3875 100644 --- a/nt/preprep.c +++ b/nt/preprep.c @@ -279,16 +279,16 @@ relocate_offset (DWORD_PTR offset, } #define OFFSET_TO_RVA(offset, section) \ - (section->VirtualAddress + ((DWORD_PTR)(offset) - section->PointerToRawData)) + ((section)->VirtualAddress + ((DWORD_PTR)(offset) - (section)->PointerToRawData)) #define RVA_TO_OFFSET(rva, section) \ - (section->PointerToRawData + ((DWORD_PTR)(rva) - section->VirtualAddress)) + ((section)->PointerToRawData + ((DWORD_PTR)(rva) - (section)->VirtualAddress)) #define RVA_TO_SECTION_OFFSET(rva, section) \ - ((DWORD_PTR)(rva) - section->VirtualAddress) + ((DWORD_PTR)(rva) - (section)->VirtualAddress) #define RVA_TO_PTR(var,section,filedata) \ - ((void *)(RVA_TO_OFFSET(var,section) + (filedata)->file_base)) + ((unsigned char *)(RVA_TO_OFFSET(var,section) + (filedata)->file_base)) /* Convert address in executing image to RVA. */ #define PTR_TO_RVA(ptr) ((DWORD_PTR)(ptr) - (DWORD_PTR) GetModuleHandle (NULL)) diff --git a/src/ChangeLog b/src/ChangeLog index d972f75454..074c74a70e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,14 @@ 2012-10-01 Eli Zaretskii + * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET) + (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses. + (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *', + as the previous version used 'void *'. + + * ralloc.c (ROUNDUP): Fix last change. + (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type + 'size_t'. + * w32proc.c : New static flag. (init_timers): Initialize it to zero, after creating the critical sections used by the timer threads. diff --git a/src/ralloc.c b/src/ralloc.c index 9422215b54..e4a8fe9c6d 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -92,11 +92,11 @@ static int extra_bytes; by changing the definition of PAGE. */ #define PAGE (getpagesize ()) #define ROUNDUP(size) (((size_t) (size) + page_size - 1) \ - & ~((size_t)page_size - 1)) + & ~((size_t)(page_size - 1))) #define MEM_ALIGN sizeof (double) #define MEM_ROUNDUP(addr) (((size_t)(addr) + MEM_ALIGN - 1) \ - & ~((size_t)MEM_ALIGN - 1)) + & ~(MEM_ALIGN - 1)) /* The hook `malloc' uses for the function which gets more space from the system. */ diff --git a/src/unexw32.c b/src/unexw32.c index f8e755cbd2..3eefc9ce05 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -314,19 +314,19 @@ relocate_offset (DWORD_PTR offset, } #define OFFSET_TO_RVA(offset, section) \ - (section->VirtualAddress + ((DWORD_PTR)(offset) - section->PointerToRawData)) + ((section)->VirtualAddress + ((DWORD_PTR)(offset) - (section)->PointerToRawData)) #define RVA_TO_OFFSET(rva, section) \ - (section->PointerToRawData + ((DWORD_PTR)(rva) - section->VirtualAddress)) + ((section)->PointerToRawData + ((DWORD_PTR)(rva) - (section)->VirtualAddress)) #define RVA_TO_SECTION_OFFSET(rva, section) \ - ((DWORD_PTR)(rva) - section->VirtualAddress) + ((DWORD_PTR)(rva) - (section)->VirtualAddress) /* Convert address in executing image to RVA. */ #define PTR_TO_RVA(ptr) ((DWORD_PTR)(ptr) - (DWORD_PTR) GetModuleHandle (NULL)) #define RVA_TO_PTR(var,section,filedata) \ - ((DWORD_PTR)(RVA_TO_OFFSET (var,section) + (filedata).file_base)) + ((unsigned char *)(RVA_TO_OFFSET (var,section) + (filedata).file_base)) #define PTR_TO_OFFSET(ptr, pfile_data) \ ((unsigned char *)(ptr) - (pfile_data)->file_base) -- 2.20.1