aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-11-12 20:35:21 +0000
committerIan Lance Taylor <iant@google.com>2007-11-12 20:35:21 +0000
commitb696e6d46c9ef8898f59c88bb7a5febea5ac9de6 (patch)
tree8202e58e4d546fdd2ab4b8ec038938be072c98a2 /gold
parent24badc6562b8153e0181f5bd937b5a84aa8a451e (diff)
downloadgdb-b696e6d46c9ef8898f59c88bb7a5febea5ac9de6.zip
gdb-b696e6d46c9ef8898f59c88bb7a5febea5ac9de6.tar.gz
gdb-b696e6d46c9ef8898f59c88bb7a5febea5ac9de6.tar.bz2
From Craig Silverstein: Track_relocs doesn't need to hold onto the
object.
Diffstat (limited to 'gold')
-rw-r--r--gold/reloc.cc4
-rw-r--r--gold/reloc.h9
2 files changed, 5 insertions, 8 deletions
diff --git a/gold/reloc.cc b/gold/reloc.cc
index e72c134..7a95dee 100644
--- a/gold/reloc.cc
+++ b/gold/reloc.cc
@@ -672,12 +672,10 @@ Copy_relocs<size, big_endian>::emit(
template<int size, bool big_endian>
bool
Track_relocs<size, big_endian>::initialize(
- Sized_relobj<size, big_endian>* object,
+ Object* object,
unsigned int reloc_shndx,
unsigned int reloc_type)
{
- this->object_ = object;
-
// If RELOC_SHNDX is -1U, it means there is more than one reloc
// section for the .eh_frame section. We can't handle that case.
if (reloc_shndx == -1U)
diff --git a/gold/reloc.h b/gold/reloc.h
index 91b0819..51b6143 100644
--- a/gold/reloc.h
+++ b/gold/reloc.h
@@ -32,6 +32,7 @@ namespace gold
{
class General_options;
+class Object;
class Relobj;
class Read_relocs_data;
class Symbol;
@@ -609,7 +610,7 @@ class Track_relocs
{
public:
Track_relocs()
- : object_(NULL), prelocs_(NULL), len_(0), pos_(0), reloc_size_(0)
+ : prelocs_(NULL), len_(0), pos_(0), reloc_size_(0)
{ }
// Initialize the Track_relocs object. OBJECT is the object holding
@@ -618,7 +619,7 @@ class Track_relocs
// (elfcpp::SHT_REL or elfcpp::SHT_RELA). This returns false if
// something went wrong.
bool
- initialize(Sized_relobj<size, big_endian>* object, unsigned int reloc_shndx,
+ initialize(Object* object, unsigned int reloc_shndx,
unsigned int reloc_type);
// Return the offset in the data section to which the next reloc
@@ -637,9 +638,7 @@ class Track_relocs
advance(off_t offset);
private:
- // The object file.
- Sized_relobj<size, big_endian>* object_;
- // The contents of the reloc section.
+ // The contents of the input object's reloc section.
const unsigned char* prelocs_;
// The length of the reloc section.
off_t len_;