* dwarf2read.c (create_debug_types_hash_table): Don't allocate the
authorDoug Evans <dje@google.com>
Fri, 29 Mar 2013 00:35:20 +0000 (00:35 +0000)
committerDoug Evans <dje@google.com>
Fri, 29 Mar 2013 00:35:20 +0000 (00:35 +0000)
types hash table until we know we need it.

gdb/ChangeLog
gdb/dwarf2read.c

index 2838b3c9847d4904243c69648d4c5b84bbb2c25f..9dbcc161a361b5f82cb93eec88337a81e9de88e1 100644 (file)
@@ -1,5 +1,8 @@
 2013-03-28  Doug Evans  <dje@google.com>
 
+       * 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.
 
index a3e68cd0613c4f3fc0061966b5c28b745b55773c..70c509340c65c54a8eb9a7bc99a0a8536bc677c5 100644 (file)
@@ -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;