https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e3447d02c1d7c8fe39d17614b00ad2a768439001

commit e3447d02c1d7c8fe39d17614b00ad2a768439001
Author:     Andreas Maier <[email protected]>
AuthorDate: Thu Nov 22 21:27:48 2018 +0100
Commit:     Mark Jansen <[email protected]>
CommitDate: Fri Apr 19 21:09:44 2019 +0200

    [DBGHELP] use correct record in codeview_snarf_public.
    
    Use public_vx iststead of data_vx for public symbols.
---
 dll/win32/dbghelp/msc.c            | 16 ++++++++--------
 sdk/include/reactos/wine/mscvpdb.h | 10 ++++++++++
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/dll/win32/dbghelp/msc.c b/dll/win32/dbghelp/msc.c
index 58a4a55f2e..6dc9276925 100644
--- a/dll/win32/dbghelp/msc.c
+++ b/dll/win32/dbghelp/msc.c
@@ -2067,20 +2067,20 @@ static BOOL codeview_snarf_public(const struct 
msc_debug_info* msc_dbg, const BY
 
         switch (sym->generic.id)
         {
-       case S_PUB_V1: /* FIXME is this really a 'data_v1' structure ?? */
+       case S_PUB_V1:
             if (!(dbghelp_options & SYMOPT_NO_PUBLICS))
             {
                 symt_new_public(msc_dbg->module, compiland,
-                                terminate_string(&sym->data_v1.p_name),
-                                codeview_get_address(msc_dbg, 
sym->data_v1.segment, sym->data_v1.offset), 1);
+                                terminate_string(&sym->public_v1.p_name),
+                                codeview_get_address(msc_dbg, 
sym->public_v1.segment, sym->public_v1.offset), 1);
             }
             break;
-       case S_PUB_V2: /* FIXME is this really a 'data_v2' structure ?? */
+       case S_PUB_V2:
             if (!(dbghelp_options & SYMOPT_NO_PUBLICS))
             {
                 symt_new_public(msc_dbg->module, compiland,
-                                terminate_string(&sym->data_v2.p_name),
-                                codeview_get_address(msc_dbg, 
sym->data_v2.segment, sym->data_v2.offset), 1);
+                                terminate_string(&sym->public_v2.p_name),
+                                codeview_get_address(msc_dbg, 
sym->public_v2.segment, sym->public_v2.offset), 1);
             }
            break;
 
@@ -2088,8 +2088,8 @@ static BOOL codeview_snarf_public(const struct 
msc_debug_info* msc_dbg, const BY
             if (!(dbghelp_options & SYMOPT_NO_PUBLICS))
             {
                 symt_new_public(msc_dbg->module, compiland,
-                                sym->data_v3.name,
-                                codeview_get_address(msc_dbg, 
sym->data_v3.segment, sym->data_v3.offset), 1);
+                                sym->public_v3.name,
+                                codeview_get_address(msc_dbg, 
sym->public_v3.segment, sym->public_v3.offset), 1);
             }
             break;
         case S_PUB_FUNC1_V3:
diff --git a/sdk/include/reactos/wine/mscvpdb.h 
b/sdk/include/reactos/wine/mscvpdb.h
index 744c17faba..f11f4065de 100644
--- a/sdk/include/reactos/wine/mscvpdb.h
+++ b/sdk/include/reactos/wine/mscvpdb.h
@@ -1350,6 +1350,16 @@ union codeview_symbol
         char                    name[1];
     } proc_v3;
 
+    struct
+    {
+        short int               len;
+        short int               id;
+        unsigned int            offset;
+        unsigned short          segment;
+        unsigned short          symtype;
+        struct p_string         p_name;
+    } public_v1;
+
     struct
     {
         short int               len;

Reply via email to