diff options
author | Doug Evans <dje@google.com> | 2012-03-13 17:16:18 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2012-03-13 17:16:18 +0000 |
commit | c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552 (patch) | |
tree | 4aa73d3217d663a983a994c5512a7e65abda5252 | |
parent | 8d3eaee676d2d1e2339fc08583261f33649b5267 (diff) | |
download | gdb-c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552.zip gdb-c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552.tar.gz gdb-c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552.tar.bz2 |
* dwarf2read.c (load_partial_comp_unit): Defer adding cu to
read_in_chain until we have successfully read it in.
(load_full_comp_unit): Ditto.
(read_signatured_type): Add comment.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 17 |
2 files changed, 16 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ccb66a1..0db4a16 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2012-03-13 Doug Evans <dje@google.com> + + * dwarf2read.c (load_partial_comp_unit): Defer adding cu to + read_in_chain until we have successfully read it in. + (load_full_comp_unit): Ditto. + (read_signatured_type): Add comment. + 2012-03-13 Chris January <chris.january@allinea.com> * stabsread.c (fix_common_block): Change type of valu argument diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index ebe855b..807d36d 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -3686,10 +3686,6 @@ load_partial_comp_unit (struct dwarf2_per_cu_data *this_cu) do_cleanups (free_cu_cleanup); return; } - - /* Link this CU into read_in_chain. */ - this_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain; - dwarf2_per_objfile->read_in_chain = this_cu; } else { @@ -3722,6 +3718,10 @@ load_partial_comp_unit (struct dwarf2_per_cu_data *this_cu) /* We've successfully allocated this compilation unit. Let our caller clean it up when finished with it. */ discard_cleanups (free_cu_cleanup); + + /* Link this CU into read_in_chain. */ + this_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain; + dwarf2_per_objfile->read_in_chain = this_cu; } } @@ -4700,10 +4700,6 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu) /* Complete the cu_header. */ cu->header.offset = offset; cu->header.first_die_offset = info_ptr - beg_of_comp_unit; - - /* Link this CU into read_in_chain. */ - per_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain; - dwarf2_per_objfile->read_in_chain = per_cu; } else { @@ -4730,6 +4726,10 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu) /* We've successfully allocated this compilation unit. Let our caller clean it up when finished with it. */ discard_cleanups (free_cu_cleanup); + + /* Link this CU into read_in_chain. */ + per_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain; + dwarf2_per_objfile->read_in_chain = per_cu; } } @@ -14445,6 +14445,7 @@ read_signatured_type (struct signatured_type *type_sig) clean it up when finished with it. */ discard_cleanups (free_cu_cleanup); + /* Link this TU into read_in_chain. */ type_sig->per_cu.cu->read_in_chain = dwarf2_per_objfile->read_in_chain; dwarf2_per_objfile->read_in_chain = &type_sig->per_cu; } |