From 0349ea227a93db57acba96cba1a3556742e1bddf Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Fri, 29 Mar 2013 00:35:20 +0000 Subject: [PATCH] * dwarf2read.c (create_debug_types_hash_table): Don't allocate the types hash table until we know we need it. --- gdb/ChangeLog | 3 +++ gdb/dwarf2read.c | 16 ++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2838b3c984..9dbcc161a3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2013-03-28 Doug Evans + * dwarf2read.c (create_debug_types_hash_table): Don't allocate the + types hash table until we know we need it. + * dwarf2read.c (create_addrmap_from_index): Complain about bad CU index numbers. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index a3e68cd061..70c509340c 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -4251,14 +4251,6 @@ create_debug_types_hash_table (struct dwo_file *dwo_file, else abbrev_section = &dwarf2_per_objfile->abbrev; - if (types_htab == NULL) - { - if (dwo_file) - types_htab = allocate_dwo_unit_table (objfile); - else - types_htab = allocate_signatured_type_table (objfile); - } - /* We don't use init_cutu_and_read_dies_simple, or some such, here because we don't need to read any dies: the signature is in the header. */ @@ -4295,6 +4287,14 @@ create_debug_types_hash_table (struct dwo_file *dwo_file, continue; } + if (types_htab == NULL) + { + if (dwo_file) + types_htab = allocate_dwo_unit_table (objfile); + else + types_htab = allocate_signatured_type_table (objfile); + } + if (dwo_file) { sig_type = NULL;