Commit 9a42affc authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

winedump: Sync demangling code with msvcrt.

parent e0d02783
...@@ -410,6 +410,28 @@ static BOOL get_qualified_type(struct datatype_t *ct, struct parsed_symbol* sym, ...@@ -410,6 +410,28 @@ static BOOL get_qualified_type(struct datatype_t *ct, struct parsed_symbol* sym,
ct->right = NULL; ct->right = NULL;
ct->flags = 0; ct->flags = 0;
/* parse managed handle information */
if (sym->current[0] == '$' && sym->current[1] == 'A')
{
sym->current += 2;
switch (qualif)
{
case 'A':
case 'B':
ref = " %";
break;
case 'P':
case 'Q':
case 'R':
case 'S':
ref = " ^";
break;
default:
return FALSE;
}
}
if (get_qualifier(sym, &xdt2, &class)) if (get_qualifier(sym, &xdt2, &class))
{ {
unsigned mark = sym->stack.num; unsigned mark = sym->stack.num;
...@@ -482,7 +504,8 @@ static char* get_literal_string(struct parsed_symbol* sym) ...@@ -482,7 +504,8 @@ static char* get_literal_string(struct parsed_symbol* sym)
if (!((*sym->current >= 'A' && *sym->current <= 'Z') || if (!((*sym->current >= 'A' && *sym->current <= 'Z') ||
(*sym->current >= 'a' && *sym->current <= 'z') || (*sym->current >= 'a' && *sym->current <= 'z') ||
(*sym->current >= '0' && *sym->current <= '9') || (*sym->current >= '0' && *sym->current <= '9') ||
*sym->current == '_' || *sym->current == '$')) { *sym->current == '_' || *sym->current == '$' ||
*sym->current == '<' || *sym->current == '>')) {
return NULL; return NULL;
} }
} while (*++sym->current != '@'); } while (*++sym->current != '@');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment