* dwarf2read.c (load_full_type_unit): Simplify.
authorDoug Evans <dje@google.com>
Tue, 10 Jul 2012 01:05:06 +0000 (01:05 +0000)
committerDoug Evans <dje@google.com>
Tue, 10 Jul 2012 01:05:06 +0000 (01:05 +0000)
gdb/ChangeLog
gdb/dwarf2read.c

index 4dfb72a..a3c2d4c 100644 (file)
@@ -1,5 +1,7 @@
 2012-07-09  Doug Evans  <dje@google.com>
 
+       * dwarf2read.c (load_full_type_unit): Simplify.
+
        * dwarf2read.c (dwarf2_per_objfile): Change type of all_type_units
        to struct signatured_type **.  All uses updated.
 
index 746bdfa..8f88825 100644 (file)
@@ -15513,27 +15513,18 @@ lookup_signatured_type_at_offset (struct objfile *objfile,
 static void
 load_full_type_unit (struct dwarf2_per_cu_data *per_cu)
 {
-  struct objfile *objfile = per_cu->objfile;
-  struct dwarf2_section_info *sect = per_cu->info_or_types_section;
-  sect_offset offset = per_cu->offset;
   struct signatured_type *sig_type;
 
-  dwarf2_read_section (objfile, sect);
-
-  /* We have the section offset, but we need the signature to do the
-     hash table lookup.  */
-  /* FIXME: This is sorta unnecessary, read_signatured_type only uses
-     the signature to assert we found the right one.
-     Ok, but it's a lot of work.  We should simplify things so any needed
-     assert doesn't require all this clumsiness.  */
-  sig_type = lookup_signatured_type_at_offset (objfile, sect, offset);
+  /* We have the per_cu, but we need the signatured_type.
+     Fortunately this is an easy translation.  */
+  gdb_assert (per_cu->is_debug_types);
+  sig_type = (struct signatured_type *) per_cu;
 
-  gdb_assert (&sig_type->per_cu == per_cu);
-  gdb_assert (sig_type->per_cu.cu == NULL);
+  gdb_assert (per_cu->cu == NULL);
 
   read_signatured_type (sig_type);
 
-  gdb_assert (sig_type->per_cu.cu != NULL);
+  gdb_assert (per_cu->cu != NULL);
 }
 
 /* die_reader_func for read_signatured_type.