Eric Pouech : dbghelp: Mostly get rid of symt_cache in dwarf debug information.

Alexandre Julliard julliard at winehq.org
Fri Sep 3 16:25:28 CDT 2021


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

Author: Eric Pouech <eric.pouech at gmail.com>
Date:   Thu Sep  2 11:22:32 2021 +0200

dbghelp: Mostly get rid of symt_cache in dwarf debug information.

Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dbghelp/dwarf.c | 31 +++----------------------------
 1 file changed, 3 insertions(+), 28 deletions(-)

diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 335c4a4e4ae..4503e42a227 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -164,10 +164,7 @@ typedef struct dwarf2_traverse_context_s
 
 /* symt_cache indexes */
 #define sc_void 0
-#define sc_int1 1
-#define sc_int2 2
-#define sc_int4 3
-#define sc_num  4
+#define sc_num  1
 
 typedef struct dwarf2_parse_context_s
 {
@@ -181,7 +178,7 @@ typedef struct dwarf2_parse_context_s
     struct sparse_array         debug_info_table;
     ULONG_PTR                   load_offset;
     ULONG_PTR                   ref_offset;
-    struct symt*                symt_cache[sc_num]; /* void, int1, int2, int4 */
+    struct symt*                symt_cache[sc_num]; /* void */
     char*                       cpp_name;
 } dwarf2_parse_context_t;
 
@@ -1166,7 +1163,6 @@ static struct symt* dwarf2_parse_base_type(dwarf2_parse_context_t* ctx,
     struct attribute size;
     struct attribute encoding;
     enum BasicType bt;
-    int cache_idx = -1;
     if (di->symt) return di->symt;
 
     TRACE("%s, for %s\n", dwarf2_debug_ctx(ctx), dwarf2_debug_di(di)); 
@@ -1190,24 +1186,6 @@ static struct symt* dwarf2_parse_base_type(dwarf2_parse_context_t* ctx,
     default:                    bt = btNoType; break;
     }
     di->symt = &symt_new_basic(ctx->module, bt, name.u.string, size.u.uvalue)->symt;
-    switch (bt)
-    {
-    case btVoid:
-        assert(size.u.uvalue == 0);
-        cache_idx = sc_void;
-        break;
-    case btInt:
-        switch (size.u.uvalue)
-        {
-        case 1: cache_idx = sc_int1; break;
-        case 2: cache_idx = sc_int2; break;
-        case 4: cache_idx = sc_int4; break;
-        }
-        break;
-    default: break;
-    }
-    if (cache_idx != -1 && !ctx->symt_cache[cache_idx])
-        ctx->symt_cache[cache_idx] = di->symt;
 
     if (dwarf2_get_di_children(ctx, di)) FIXME("Unsupported children\n");
     return di->symt;
@@ -1269,7 +1247,7 @@ static struct symt* dwarf2_parse_array_type(dwarf2_parse_context_t* ctx,
     {
         /* fake an array with unknown size */
         /* FIXME: int4 even on 64bit machines??? */
-        idx_type = ctx->symt_cache[sc_int4];
+        idx_type = &symt_new_basic(ctx->module, btInt, "int", 4)->symt;
         min.u.uvalue = 0;
         cnt.u.uvalue = 0;
     }
@@ -1347,9 +1325,6 @@ static struct symt* dwarf2_parse_unspecified_type(dwarf2_parse_context_t* ctx,
     basic = symt_new_basic(ctx->module, btVoid, name.u.string, size.u.uvalue);
     di->symt = &basic->symt;
 
-    if (!ctx->symt_cache[sc_void])
-        ctx->symt_cache[sc_void] = di->symt;
-
     if (dwarf2_get_di_children(ctx, di)) FIXME("Unsupported children\n");
     return di->symt;
 }




More information about the wine-cvs mailing list