Eric Pouech : dbghelp: Dwarf & typedefs.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jun 20 05:23:23 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 00cf2da5d6d7ba5bf89bd7fd00f2f2c649c62ec4
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=00cf2da5d6d7ba5bf89bd7fd00f2f2c649c62ec4

Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date:   Sun Jun 18 21:30:55 2006 +0200

dbghelp: Dwarf & typedefs.

- removed lookup for name for the const modifier
- hard wire dwarf-reference to our pointer types

---

 dlls/dbghelp/dwarf.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index b13bd09..2c20e52 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -1137,9 +1137,8 @@ static struct symt_array* dwarf2_parse_a
   return symt;
 }
 
-static struct symt_typedef* dwarf2_parse_const_type(struct module* module, dwarf2_abbrev_entry_t* entry, dwarf2_parse_context_t* ctx)
+static struct symt* dwarf2_parse_const_type(struct module* module, dwarf2_abbrev_entry_t* entry, dwarf2_parse_context_t* ctx)
 {
-  struct symt_typedef* symt = NULL;
   struct symt* ref_type = NULL;
   dwarf2_abbrev_entry_attr_t* attr = NULL;
   unsigned long next_sibling = 0;
@@ -1159,8 +1158,6 @@ static struct symt_typedef* dwarf2_parse
       dwarf2_parse_attr(attr, ctx);
     }
   }
-  FIXME("need to generate a name\n");
-  symt = symt_new_typedef(module, ref_type, "");
 
   if (entry->have_child) {
     FIXME("Unsupported children\n");
@@ -1169,12 +1166,12 @@ static struct symt_typedef* dwarf2_parse
   /** set correct data cursor */
   dwarf2_check_sibling(ctx, next_sibling);
 
-  return symt;
+  return ref_type;
 }
 
-static struct symt_typedef* dwarf2_parse_reference_type(struct module* module, dwarf2_abbrev_entry_t* entry, dwarf2_parse_context_t* ctx)
+static struct symt* dwarf2_parse_reference_type(struct module* module, dwarf2_abbrev_entry_t* entry, dwarf2_parse_context_t* ctx)
 {
-  struct symt_typedef* symt = NULL;
+  struct symt* symt = NULL;
   struct symt* ref_type = NULL;
   dwarf2_abbrev_entry_attr_t* attr = NULL;
   unsigned long next_sibling = 0;
@@ -1197,8 +1194,8 @@ static struct symt_typedef* dwarf2_parse
       dwarf2_parse_attr(attr, ctx);
     }
   }
-  FIXME("need to generate a name\n");
-  symt = symt_new_typedef(module, ref_type, "");
+  /* FIXME: for now, we hard-wire C++ references to pointers */
+  symt = &symt_new_pointer(module, ref_type)->symt;
 
   if (entry->have_child) {
     FIXME("Unsupported children\n");
@@ -2039,14 +2036,14 @@ static void dwarf2_parse_compiland_conte
 	break;
       case DW_TAG_const_type:
 	{
-	  struct symt_typedef* symt = dwarf2_parse_const_type(module, entry, ctx);
-	  dwarf2_add_symt_ref(module, entry_ref, &symt->symt);
+	  struct symt* symt = dwarf2_parse_const_type(module, entry, ctx);
+	  dwarf2_add_symt_ref(module, entry_ref, symt);
 	}
 	break;
       case DW_TAG_reference_type:
 	{
-	  struct symt_typedef* symt = dwarf2_parse_reference_type(module, entry, ctx);
-	  dwarf2_add_symt_ref(module, entry_ref, &symt->symt);
+	  struct symt* symt = dwarf2_parse_reference_type(module, entry, ctx);
+	  dwarf2_add_symt_ref(module, entry_ref, symt);
 	}
 	break;
       case DW_TAG_enumeration_type:




More information about the wine-cvs mailing list