diff options
author | Cary Coutant <ccoutant@google.com> | 2010-03-10 17:37:11 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2010-03-10 17:37:11 +0000 |
commit | a2a5469e7999a8e4e713e11bfd191c11a422e1e8 (patch) | |
tree | 92315f4087cfe181e318353ff45b1eb1409c3959 /gold/readsyms.cc | |
parent | 8861f32bfe734089329baf93a95f74ccc75dff44 (diff) | |
download | gdb-a2a5469e7999a8e4e713e11bfd191c11a422e1e8.zip gdb-a2a5469e7999a8e4e713e11bfd191c11a422e1e8.tar.gz gdb-a2a5469e7999a8e4e713e11bfd191c11a422e1e8.tar.bz2 |
* fileread.cc (File_read::~File_read): Don't delete whole_file_view_.
(File_read::open[1]): Remove initial mapping of whole_file_view_.
(File_read::open[2]): Add whole_file_view_ to list of views.
(File_read::make_view): Remove test of whole_file_view_.
(File_read::find_or_make_view): Create whole_file_view_ if
necessary.
(File_read::clear_views): Replace bool parameter with enum;
adjust all callers. Don't delete views with permanent data;
do delete cached views and views from archives if
--no-keep-files-mapped is set. Set whole_file_view_ to NULL
if clearing the corresponding view.
* fileread.h (File_read::Clear_views_mode): New enum.
(File_read::View::is_permanent_view): New method.
(File_read::clear_views): Replace bool parameter
with enum; adjust all callers.
* options.h (General_options): Change keep_files_mapped option;
add map_whole_files.
* readsyms.cc (Add_symbols::run): Delete sd_ object before
releasing the file.
* reloc.cc (Scan_relocs::run): Delete rd_ object before releasing
the file.
Diffstat (limited to 'gold/readsyms.cc')
-rw-r--r-- | gold/readsyms.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gold/readsyms.cc b/gold/readsyms.cc index cd8814c..2ca391c 100644 --- a/gold/readsyms.cc +++ b/gold/readsyms.cc @@ -470,6 +470,8 @@ Add_symbols::run(Workqueue*) if (!this->input_objects_->add_object(this->object_)) { + delete this->sd_; + this->sd_ = NULL; this->object_->release(); delete this->object_; } @@ -477,10 +479,10 @@ Add_symbols::run(Workqueue*) { this->object_->layout(this->symtab_, this->layout_, this->sd_); this->object_->add_symbols(this->symtab_, this->sd_, this->layout_); + delete this->sd_; + this->sd_ = NULL; this->object_->release(); } - delete this->sd_; - this->sd_ = NULL; } // Class Start_group. |