From 5dd8762ad1a47548394c76ead1b56fc5dab64628 Mon Sep 17 00:00:00 2001
From: Cary Coutant <ccoutant@google.com>
Date: Wed, 29 Feb 2012 21:22:29 +0000
Subject: 	* dwarf_reader.cc
 (Sized_dwarf_line_info::Sized_dwarf_line_info): 	Call
 Object::decompressed_section_contents. 	* dwarf_reader.h
 (Sized_dwarf_line_info::~Sized_dwarf_line_info): 	New dtor. 
 (Sized_dwarf_line_info::buffer_start_): New data member. 	* merge.cc
 (Output_merge_data::do_add_input_section): Call 
 Object::decompressed_section_contents. 
 (Output_merge_string::do_add_input_section): Likewise. 	* object.cc
 (need_decompressed_section): New function. 
 (build_compressed_section_map): Decompress sections needed later. 
 (Sized_relobj_file::do_decompressed_section_contents): New function. 
 (Sized_relobj_file::do_discard_decompressed_sections): New function. 	*
 object.h (Object::decompressed_section_contents): New function. 
 (Object::discard_decompressed_sections): New function. 
 (Object::do_decompressed_section_contents): New function. 
 (Object::do_discard_decompressed_sections): New function. 
 (Compressed_section_info): New type. 	(Compressed_section_map): Include
 decompressed section contents. 
 (Sized_relobj_file::do_decompressed_section_contents): New function. 
 (Sized_relobj_file::do_discard_decompressed_sections): New function.

---
 gold/readsyms.cc | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'gold/readsyms.cc')

diff --git a/gold/readsyms.cc b/gold/readsyms.cc
index 9974722..8e52ccb 100644
--- a/gold/readsyms.cc
+++ b/gold/readsyms.cc
@@ -602,6 +602,7 @@ Add_symbols::run(Workqueue*)
 
   if (!this->input_objects_->add_object(this->object_))
     {
+      this->object_->discard_decompressed_sections();
       gold_assert(this->sd_ != NULL);
       delete this->sd_;
       this->sd_ = NULL;
@@ -632,6 +633,7 @@ Add_symbols::run(Workqueue*)
 	}
       this->object_->layout(this->symtab_, this->layout_, this->sd_);
       this->object_->add_symbols(this->symtab_, this->sd_, this->layout_);
+      this->object_->discard_decompressed_sections();
       delete this->sd_;
       this->sd_ = NULL;
       this->object_->release();
-- 
cgit v1.1