Eric Pouech : dbghelp: Added support for some V3 fields in structure parsing.

Alexandre Julliard julliard at winehq.org
Thu Feb 7 07:59:28 CST 2008


Module: wine
Branch: master
Commit: ac3b817d80aea067433ed5074e86d2e22a5dfaa8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ac3b817d80aea067433ed5074e86d2e22a5dfaa8

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Wed Feb  6 21:55:28 2008 +0100

dbghelp: Added support for some V3 fields in structure parsing.

---

 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 2bc1d28..12dcf4b 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-cvs mailing list