Module: wine Branch: master Commit: 49ac014d28db395a3f734f6b7763ab4a5b8e5749 URL: http://source.winehq.org/git/wine.git/?a=commit;h=49ac014d28db395a3f734f6b77...
Author: Eric Pouech eric.pouech@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;