From 6721b2ec995b983abc98246ec3fdd0ade806907d Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Tue, 10 Jul 2012 01:05:06 +0000 Subject: [PATCH] * dwarf2read.c (load_full_type_unit): Simplify. --- gdb/ChangeLog | 2 ++ gdb/dwarf2read.c | 21 ++++++--------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4dfb72a..a3c2d4c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,7 @@ 2012-07-09 Doug Evans + * 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. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 746bdfa..8f88825 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -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. -- 2.7.4