Eric Pouech : winedump: Simplify code a bit by using IMAGE_FIRST_SECTION() macro.

Alexandre Julliard julliard at winehq.org
Mon May 2 14:16:13 CDT 2011


Module: wine
Branch: master
Commit: 0957cd03dd0ff98f22eb9f80a7973b01d1b21157
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0957cd03dd0ff98f22eb9f80a7973b01d1b21157

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Sun May  1 09:46:27 2011 +0200

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 4f2cedf..c59efa6 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 2ab2f34..1f8ee38 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 82eb6d8..7141d0d 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);




More information about the wine-cvs mailing list