From: H.J. Lu <hjl.tools@gmail.com>
Date: Fri, 12 Nov 2010 22:10:18 +0000 (+0000)
Subject: Properly copy BFD_COMPRESS and BFD_DECOMPRESS to archive element.
X-Git-Url: https://repo.jachan.dev/binutils.git/commitdiff_plain/e326bf5f36a655709f6089ee1b68e623ea7db607?ds=sidebyside

Properly copy BFD_COMPRESS and BFD_DECOMPRESS to archive element.

2010-11-12  H.J. Lu  <hongjiu.lu@intel.com>

	* archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS and
	BFD_DECOMPRESS.
	(bfd_openr_next_archived_file): Revert the last change.
---

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index aab75e9f86..35aae25301 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS and
+	BFD_DECOMPRESS.
+	(bfd_openr_next_archived_file): Revert the last change.
+
 2010-11-11  Mingming Sun  <mingm.sun@gmail.com>
 
 	* archures.c (bfd_mach_mips_loongson_3a): Defined.
diff --git a/bfd/archive.c b/bfd/archive.c
index ed4014151d..258c8d9aae 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -655,6 +655,9 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
 
   n_nfd->arelt_data = new_areldata;
 
+  /* Copy BFD_COMPRESS and BFD_DECOMPRESS flags.  */
+  n_nfd->flags |= archive->flags & (BFD_COMPRESS | BFD_DECOMPRESS);
+
   if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_nfd))
     return n_nfd;
 
@@ -697,8 +700,6 @@ DESCRIPTION
 bfd *
 bfd_openr_next_archived_file (bfd *archive, bfd *last_file)
 {
-  bfd *abfd;
-
   if ((bfd_get_format (archive) != bfd_archive)
       || (archive->direction == write_direction))
     {
@@ -706,14 +707,8 @@ bfd_openr_next_archived_file (bfd *archive, bfd *last_file)
       return NULL;
     }
 
-  abfd = BFD_SEND (archive,
+  return BFD_SEND (archive,
 		   openr_next_archived_file, (archive, last_file));
-
-  /* Copy BFD_COMPRESS and BFD_DECOMPRESS flags.  */
-  if (abfd)
-    abfd->flags |= archive->flags & (BFD_COMPRESS | BFD_DECOMPRESS);
-
-  return abfd;
 }
 
 bfd *