[PATCH 05/13] [DbgHelp]: added support for some V3 fields in structure parsing
Eric Pouech
eric.pouech at orange.fr
Wed Feb 6 14:55:28 CST 2008
A+
---
dlls/dbghelp/msc.c | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index b8a7780..b928d09 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -659,6 +659,11 @@ static int codeview_add_type_struct_field_list(struct codeview_type_parse* ctp,
ptr += 2 + 4 + 2 + (1 + type->stmember_v2.p_name.namelen);
break;
+ case LF_STMEMBER_V3:
+ /* FIXME: ignored for now */
+ ptr += 2 + 4 + 2 + (strlen(type->stmember_v3.name) + 1);
+ break;
+
case LF_METHOD_V1:
/* FIXME: ignored for now */
ptr += 2 + 2 + 2 + (1 + type->method_v1.p_name.namelen);
@@ -669,6 +674,11 @@ static int codeview_add_type_struct_field_list(struct codeview_type_parse* ctp,
ptr += 2 + 2 + 4 + (1 + type->method_v2.p_name.namelen);
break;
+ case LF_METHOD_V3:
+ /* FIXME: ignored for now */
+ ptr += 2 + 2 + 4 + (strlen(type->method_v3.name) + 1);
+ break;
+
case LF_NESTTYPE_V1:
/* FIXME: ignored for now */
ptr += 2 + 2 + (1 + type->nesttype_v1.p_name.namelen);
@@ -679,6 +689,11 @@ static int codeview_add_type_struct_field_list(struct codeview_type_parse* ctp,
ptr += 2 + 2 + 4 + (1 + type->nesttype_v2.p_name.namelen);
break;
+ case LF_NESTTYPE_V3:
+ /* FIXME: ignored for now */
+ ptr += 2 + 2 + 4 + (strlen(type->nesttype_v3.name) + 1);
+ break;
+
case LF_VFUNCTAB_V1:
/* FIXME: ignored for now */
ptr += 2 + 2;
@@ -717,6 +732,20 @@ static int codeview_add_type_struct_field_list(struct codeview_type_parse* ctp,
}
break;
+ case LF_ONEMETHOD_V3:
+ /* FIXME: ignored for now */
+ switch ((type->onemethod_v3.attribute >> 2) & 7)
+ {
+ case 4: case 6: /* (pure) introducing virtual method */
+ ptr += 2 + 2 + 4 + 4 + (strlen(type->onemethod_virt_v3.name) + 1);
+ break;
+
+ default:
+ ptr += 2 + 2 + 4 + (strlen(type->onemethod_v3.name) + 1);
+ break;
+ }
+ break;
+
default:
FIXME("Unsupported type %04x in STRUCT field list\n", type->generic.id);
return FALSE;
More information about the wine-patches
mailing list