From 0957cd03dd0ff98f22eb9f80a7973b01d1b21157 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Sun, 1 May 2011 09:46:27 +0200 Subject: [PATCH] winedump: Simplify code a bit by using IMAGE_FIRST_SECTION() macro. --- tools/winedump/debug.c | 3 +-- tools/winedump/pe.c | 11 ++++------- tools/winedump/winedump.h | 3 ++- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/tools/winedump/debug.c b/tools/winedump/debug.c index 4f2cedf9988..c59efa627c3 100644 --- a/tools/winedump/debug.c +++ b/tools/winedump/debug.c @@ -570,12 +570,11 @@ void dump_coff_symbol_table(const IMAGE_SYMBOL *coff_symbols, unsigned num_sy } } -void dump_coff(unsigned long coffbase, unsigned long len, const void* pmt) +void dump_coff(unsigned long coffbase, unsigned long len, const IMAGE_SECTION_HEADER* sectHead) { const IMAGE_COFF_SYMBOLS_HEADER *coff = PRD(coffbase, len); const IMAGE_SYMBOL *coff_symbols = (const IMAGE_SYMBOL *) ((const char *)coff + coff->LvaToFirstSymbol); - const IMAGE_SECTION_HEADER *sectHead = pmt; dump_coff_symbol_table(coff_symbols, coff->NumberOfSymbols, sectHead); } diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c index 2ab2f340090..1f8ee3856b7 100644 --- a/tools/winedump/pe.c +++ b/tools/winedump/pe.c @@ -882,8 +882,8 @@ static void dump_dir_debug_dir(const IMAGE_DEBUG_DIRECTORY* idd, int idx) case IMAGE_DEBUG_TYPE_UNKNOWN: break; case IMAGE_DEBUG_TYPE_COFF: - dump_coff(idd->PointerToRawData, idd->SizeOfData, - (const char*)PE_nt_headers + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader); + dump_coff(idd->PointerToRawData, idd->SizeOfData, + IMAGE_FIRST_SECTION(PE_nt_headers)); break; case IMAGE_DEBUG_TYPE_CODEVIEW: dump_codeview(idd->PointerToRawData, idd->SizeOfData); @@ -1383,9 +1383,7 @@ static void dump_debug(void) unsigned i; const IMAGE_SECTION_HEADER* sectHead; - sectHead = (const IMAGE_SECTION_HEADER*) - ((const char*)PE_nt_headers + sizeof(DWORD) + - sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader); + sectHead = IMAGE_FIRST_SECTION(PE_nt_headers); for (i = 0; i < PE_nt_headers->FileHeader.NumberOfSections; i++, sectHead++) { @@ -1456,8 +1454,7 @@ void pe_dump(void) { dump_pe_header(); /* FIXME: should check ptr */ - dump_sections(PRD(0, 1), (const char*)PE_nt_headers + sizeof(DWORD) + - sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader, + dump_sections(PRD(0, 1), IMAGE_FIRST_SECTION(PE_nt_headers), PE_nt_headers->FileHeader.NumberOfSections); } else if (!globals.dumpsect) diff --git a/tools/winedump/winedump.h b/tools/winedump/winedump.h index 82eb6d83e87..7141d0dec90 100644 --- a/tools/winedump/winedump.h +++ b/tools/winedump/winedump.h @@ -260,7 +260,8 @@ void codeview_dump_linetab2(const char* linetab, DWORD size, const ch void dump_stabs(const void* pv_stabs, unsigned szstabs, const char* stabstr, unsigned szstr); void dump_codeview(unsigned long ptr, unsigned long len); -void dump_coff(unsigned long coffbase, unsigned long len, const void* sect_map); +void dump_coff(unsigned long coffbase, unsigned long len, + const IMAGE_SECTION_HEADER *sectHead); void dump_coff_symbol_table(const IMAGE_SYMBOL *coff_symbols, unsigned num_sym, const IMAGE_SECTION_HEADER *sectHead); void dump_frame_pointer_omission(unsigned long base, unsigned long len); -- 2.11.4.GIT