[PATCH 2/3] [WineDump]: simplify code a bit by using get_dir_and_size()

Eric Pouech eric.pouech at orange.fr
Sun May 1 02:46:21 CDT 2011




A+
---

 tools/winedump/pe.c |   28 ++++------------------------
 1 files changed, 4 insertions(+), 24 deletions(-)


diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c
index 1974a42..2ab2f34 100644
--- a/tools/winedump/pe.c
+++ b/tools/winedump/pe.c
@@ -756,20 +756,10 @@ static void dump_image_thunk_data32(const IMAGE_THUNK_DATA32 *il, int offset)
 
 static	void	dump_dir_imported_functions(void)
 {
-    const IMAGE_IMPORT_DESCRIPTOR	*importDesc = get_dir(IMAGE_FILE_IMPORT_DIRECTORY);
-    DWORD directorySize;
+    unsigned directorySize;
+    const IMAGE_IMPORT_DESCRIPTOR* importDesc = get_dir_and_size(IMAGE_FILE_IMPORT_DIRECTORY, &directorySize);
 
     if (!importDesc)	return;
-    if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
-    {
-        const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader;
-        directorySize = opt->DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].Size;
-    }
-    else
-    {
-        const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader;
-        directorySize = opt->DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].Size;
-    }
 
     printf("Import Table size: %08x\n", directorySize);/* FIXME */
 
@@ -809,6 +799,7 @@ static	void	dump_dir_imported_functions(void)
 
 static void dump_dir_delay_imported_functions(void)
 {
+    unsigned  directorySize;
     const struct ImgDelayDescr
     {
         DWORD grAttrs;
@@ -819,20 +810,9 @@ static void dump_dir_delay_imported_functions(void)
         DWORD pBoundIAT;
         DWORD pUnloadIAT;
         DWORD dwTimeStamp;
-    } *importDesc = get_dir(IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT);
-    DWORD directorySize;
+    } *importDesc = get_dir_and_size(IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT, &directorySize);
 
     if (!importDesc) return;
-    if (PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
-    {
-        const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64 *)&PE_nt_headers->OptionalHeader;
-        directorySize = opt->DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size;
-    }
-    else
-    {
-        const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32 *)&PE_nt_headers->OptionalHeader;
-        directorySize = opt->DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size;
-    }
 
     printf("Delay Import Table size: %08x\n", directorySize); /* FIXME */
 




More information about the wine-patches mailing list