Michael Stefaniuc : msvcrt: Handle data types B,R,
S in C++ symbol demangling.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Feb 7 06:05:37 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 0df8b0a0209f9f99bce5d001e56937af9e2c82d0
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=0df8b0a0209f9f99bce5d001e56937af9e2c82d0
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Tue Feb 7 12:27:35 2006 +0100
msvcrt: Handle data types B,R,S in C++ symbol demangling.
---
dlls/msvcrt/undname.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/dlls/msvcrt/undname.c b/dlls/msvcrt/undname.c
index 222ce7e..5c2f47f 100644
--- a/dlls/msvcrt/undname.c
+++ b/dlls/msvcrt/undname.c
@@ -374,8 +374,11 @@ static const char* get_modified_type(str
switch (modif)
{
case 'A': str_modif = " &"; break;
+ case 'B': str_modif = " & volatile"; break;
case 'P': str_modif = " *"; break;
case 'Q': str_modif = " * const"; break;
+ case 'R': str_modif = " * volatile"; break;
+ case 'S': str_modif = " * const volatile"; break;
case '?': str_modif = ""; break;
default: return NULL;
}
@@ -645,11 +648,14 @@ static BOOL demangle_datatype(struct par
/* not all the time is seems */
if (!(ct->left = get_modified_type(sym, '?'))) goto done;
break;
- case 'A':
- if (!(ct->left = get_modified_type(sym, 'A'))) goto done;
- break;
- case 'Q':
- if (!(ct->left = get_modified_type(sym, in_args ? 'Q' : 'P'))) goto done;
+ case 'A': /* reference */
+ case 'B': /* volatile reference */
+ if (!(ct->left = get_modified_type(sym, dt))) goto done;
+ break;
+ case 'Q': /* const pointer */
+ case 'R': /* volatile pointer */
+ case 'S': /* const volatile pointer */
+ if (!(ct->left = get_modified_type(sym, in_args ? dt : 'P'))) goto done;
break;
case 'P': /* Pointer */
if (isdigit(*sym->current))
More information about the wine-cvs
mailing list