From 49ac014d28db395a3f734f6b7763ab4a5b8e5749 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Mon, 21 Jan 2008 22:05:59 +0100 Subject: [PATCH] msvcrt: symbol undecoration: Added support for thunks. --- dlls/msvcrt/undname.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dlls/msvcrt/undname.c b/dlls/msvcrt/undname.c index f83d99850b6..16466dd8566 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;