Add const to Object::read and Object::sized_target.
authorIan Lance Taylor <iant@google.com>
Fri, 14 Dec 2007 18:50:01 +0000 (18:50 +0000)
committerIan Lance Taylor <iant@google.com>
Fri, 14 Dec 2007 18:50:01 +0000 (18:50 +0000)
gold/fileread.cc
gold/fileread.h
gold/object.h

index b9171095b7f97bf5f8ae9a060bb5a003ae5a0a6b..e5df08b226af2badc1fde591c217ed434b7954c9 100644 (file)
@@ -161,7 +161,7 @@ File_read::unlock()
 }
 
 bool
-File_read::is_locked()
+File_read::is_locked() const
 {
   return this->lock_count_ > 0;
 }
@@ -223,8 +223,6 @@ File_read::do_read(off_t start, off_t size, void* p) const
 void
 File_read::read(off_t start, off_t size, void* p) const
 {
-  gold_assert(this->lock_count_ > 0);
-
   File_read::View* pv = this->find_view(start, size);
   if (pv != NULL)
     {
index 0e5bdbe33480e1bb331b1bed604156da70597660..eddb88707bf6d2a805cc48d40949226872d0f856 100644 (file)
@@ -78,7 +78,7 @@ class File_read
 
   // Test whether the object is locked.
   bool
-  is_locked();
+  is_locked() const;
 
   // Return the size of the file.
   off_t
@@ -323,6 +323,10 @@ class Input_file
   file()
   { return this->file_; }
 
+  const File_read&
+  file() const
+  { return this->file_; }
+
   // Whether we found the file in a directory in the system root.
   bool
   is_in_sysroot() const
index a98e75665d21bef518138fe4787c0c1b4fdefcc4..1fcdd1047dc7f884e5b7b4ba96c6ff32b83a7ae7 100644 (file)
@@ -166,24 +166,24 @@ class Object
   // Lock the underlying file.
   void
   lock()
-  { this->input_file_->file().lock(); }
+  { this->input_file()->file().lock(); }
 
   // Unlock the underlying file.
   void
   unlock()
-  { this->input_file_->file().unlock(); }
+  { this->input_file()->file().unlock(); }
 
   // Return whether the underlying file is locked.
   bool
   is_locked() const
-  { return this->input_file_->file().is_locked(); }
+  { return this->input_file()->file().is_locked(); }
 
   // Return the sized target structure associated with this object.
   // This is like the target method but it returns a pointer of
   // appropriate checked type.
   template<int size, bool big_endian>
   Sized_target<size, big_endian>*
-  sized_target(ACCEPT_SIZE_ENDIAN_ONLY);
+  sized_target(ACCEPT_SIZE_ENDIAN_ONLY) const;
 
   // Get the number of sections.
   unsigned int
@@ -324,6 +324,10 @@ class Object
 
   // Get the file.
   Input_file*
+  input_file()
+  { return this->input_file_; }
+
+  const Input_file*
   input_file() const
   { return this->input_file_; }
 
@@ -331,22 +335,22 @@ class Object
   const unsigned char*
   get_view(off_t start, off_t size, bool cache)
   {
-    return this->input_file_->file().get_view(start + this->offset_, size,
-                                             cache);
+    return this->input_file()->file().get_view(start + this->offset_, size,
+                                              cache);
   }
 
   // Get a lasting view into the underlying file.
   File_view*
   get_lasting_view(off_t start, off_t size, bool cache)
   {
-    return this->input_file_->file().get_lasting_view(start + this->offset_,
-                                                     size, cache);
+    return this->input_file()->file().get_lasting_view(start + this->offset_,
+                                                      size, cache);
   }
 
   // Read data from the underlying file.
   void
-  read(off_t start, off_t size, void* p)
-  { this->input_file_->file().read(start + this->offset_, size, p); }
+  read(off_t start, off_t size, void* p) const
+  { this->input_file()->file().read(start + this->offset_, size, p); }
 
   // Set the target.
   void
@@ -398,7 +402,7 @@ class Object
 
 template<int size, bool big_endian>
 inline Sized_target<size, big_endian>*
-Object::sized_target(ACCEPT_SIZE_ENDIAN_ONLY)
+Object::sized_target(ACCEPT_SIZE_ENDIAN_ONLY) const
 {
   gold_assert(this->target_->get_size() == size);
   gold_assert(this->target_->is_big_endian() ? big_endian : !big_endian);