Alexandre Julliard : winedump: Ordinal functions can be forwards too.

Alexandre Julliard julliard at winehq.org
Fri Sep 25 10:24:39 CDT 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Sep 24 22:36:45 2009 +0200

winedump: Ordinal functions can be forwards too.

---

 tools/winedump/pe.c |   18 ++++++++----------
 1 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c
index 5ff8a16..077109d 100644
--- a/tools/winedump/pe.c
+++ b/tools/winedump/pe.c
@@ -492,9 +492,7 @@ static	void	dump_dir_exported_functions(void)
     pFunc = RVA(exportDir->AddressOfFunctions, exportDir->NumberOfFunctions * sizeof(DWORD));
     if (!pFunc) {printf("Can't grab functions' address table\n"); return;}
     pName = RVA(exportDir->AddressOfNames, exportDir->NumberOfNames * sizeof(DWORD));
-    if (!pName) {printf("Can't grab functions' name table\n"); return;}
     pOrdl = RVA(exportDir->AddressOfNameOrdinals, exportDir->NumberOfNames * sizeof(WORD));
-    if (!pOrdl) {printf("Can't grab functions' ordinal table\n"); return;}
 
     funcs = calloc( exportDir->NumberOfFunctions, sizeof(*funcs) );
     if (!funcs) fatal("no memory");
@@ -506,15 +504,15 @@ static	void	dump_dir_exported_functions(void)
         if (!pFunc[i]) continue;
         printf("  %08X %5u ", pFunc[i], exportDir->Base + i);
         if (funcs[i])
-        {
             printf("%s", get_symbol_str((const char*)RVA(funcs[i], sizeof(DWORD))));
-            /* check for forwarded function */
-            if ((const char *)RVA(pFunc[i],1) >= (const char *)exportDir &&
-                (const char *)RVA(pFunc[i],1) < (const char *)exportDir + size)
-                printf(" (-> %s)", (const char *)RVA(pFunc[i],1));
-            printf("\n");
-        }
-        else printf("<by ordinal>\n");
+        else
+            printf("<by ordinal>");
+
+        /* check for forwarded function */
+        if ((const char *)RVA(pFunc[i],1) >= (const char *)exportDir &&
+            (const char *)RVA(pFunc[i],1) < (const char *)exportDir + size)
+            printf(" (-> %s)", (const char *)RVA(pFunc[i],1));
+        printf("\n");
     }
     free(funcs);
     printf("\n");




More information about the wine-cvs mailing list