Eric Pouech : msvcrt: symbol undecoration: Added support for thunks.

Alexandre Julliard julliard at winehq.org
Tue Jan 22 06:01:51 CST 2008


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

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Mon Jan 21 22:05:59 2008 +0100

msvcrt: symbol undecoration: Added support for thunks.

---

 dlls/msvcrt/undname.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/msvcrt/undname.c b/dlls/msvcrt/undname.c
index f83d998..16466dd 100644
--- a/dlls/msvcrt/undname.c
+++ b/dlls/msvcrt/undname.c
@@ -1012,7 +1012,6 @@ static BOOL handle_method(struct parsed_symbol* sym, BOOL cast_op)
      * 'Y'
      * 'Z'
      */
-
     accmem = *sym->current++;
     if (accmem < 'A' || accmem > 'Z') goto done;
 
@@ -1033,11 +1032,19 @@ static BOOL handle_method(struct parsed_symbol* sym, BOOL cast_op)
             {
             case 2: case 3: member_type = "static "; break;
             case 4: case 5: member_type = "virtual "; break;
-            case 6: case 7: member_type = "thunk "; break;
+            case 6: case 7:
+                access = str_printf(sym, "[thunk]:%s", access);
+                member_type = "virtual ";
+                break;
             }
         }
     }
 
+    name = get_class_string(sym, 0);
+
+    if ((accmem - 'A') % 8 == 6 || (accmem - '8') % 8 == 7) /* a thunk */
+        name = str_printf(sym, "%s`adjustor{%s}' ", name, get_number(sym));
+
     if (accmem <= 'X')
     {
         if (((accmem - 'A') % 8) != 2 && ((accmem - 'A') % 8) != 3)
@@ -1049,8 +1056,6 @@ static BOOL handle_method(struct parsed_symbol* sym, BOOL cast_op)
         }
     }
 
-    name = get_class_string(sym, 0);
-  
     if (!get_calling_convention(*sym->current++, &call_conv, &exported,
                                 sym->flags))
         goto done;




More information about the wine-cvs mailing list