From 4aa90cc007ff1e7c6525b3f5e573e3a4242091fa Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 6 Apr 2015 09:01:43 -0700 Subject: [PATCH] Use bfd_putb64/bfd_getb64 bfd/ * compress.c (get_uncompressed_size): Removed. (bfd_compress_section_contents): Use bfd_putb64 to write uncompressed section size. (bfd_init_section_decompress_status): Replace get_uncompressed_size with bfd_getb64. gas/ * write.c (compress_debug): Use bfd_putb64 to write uncompressed section size. --- bfd/ChangeLog | 8 ++++++++ bfd/compress.c | 33 ++------------------------------- gas/ChangeLog | 5 +++++ gas/write.c | 9 +-------- 4 files changed, 16 insertions(+), 39 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4400a36b7b..4291fc7da2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2015-04-06 H.J. Lu + + * compress.c (get_uncompressed_size): Removed. + (bfd_compress_section_contents): Use bfd_putb64 to write + uncompressed section size. + (bfd_init_section_decompress_status): Replace + get_uncompressed_size with bfd_getb64. + 2015-04-04 H.J. Lu * elf.c (_bfd_elf_init_private_section_data): Also preserve the diff --git a/bfd/compress.c b/bfd/compress.c index 56d49fe30b..b57650faee 100644 --- a/bfd/compress.c +++ b/bfd/compress.c @@ -59,27 +59,6 @@ decompress_contents (bfd_byte *compressed_buffer, return rc == Z_OK && strm.avail_out == 0; } -static bfd_size_type -get_uncompressed_size (bfd_byte *compressed_size_buffer) -{ - bfd_size_type uncompressed_size = compressed_size_buffer[0]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[1]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[2]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[3]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[4]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[5]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[6]; - uncompressed_size <<= 8; - uncompressed_size += compressed_size_buffer[7]; - return uncompressed_size;; -} - /* Compress data of the size specified in @var{uncompressed_size} and pointed to by @var{uncompressed_buffer} using zlib and store as the contents field. This function assumes the contents @@ -122,15 +101,7 @@ bfd_compress_section_contents (bfd *abfd ATTRIBUTE_UNUSED, sec_ptr sec, /* Write the zlib header. In this case, it should be "ZLIB" followed by the uncompressed section size, 8 bytes in big-endian order. */ memcpy (compressed_buffer, "ZLIB", 4); - compressed_buffer[11] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[10] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[9] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[8] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[7] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[6] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[5] = uncompressed_size; uncompressed_size >>= 8; - compressed_buffer[4] = uncompressed_size; - + bfd_putb64 (uncompressed_size, compressed_buffer + 4); free (uncompressed_buffer); sec->contents = compressed_buffer; sec->size = compressed_size; @@ -368,7 +339,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) return FALSE; } - uncompressed_size = get_uncompressed_size (compressed_buffer + 4); + uncompressed_size = bfd_getb64 (compressed_buffer + 4); sec->compressed_size = sec->size; sec->size = uncompressed_size; sec->compress_status = DECOMPRESS_SECTION_SIZED; diff --git a/gas/ChangeLog b/gas/ChangeLog index f2a1bf2258..c896dea09c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-04-06 H.J. Lu + + * write.c (compress_debug): Use bfd_putb64 to write uncompressed + section size. + 2015-04-05 H.J. Lu * write.c (compress_debug): Don't write the zlib header if diff --git a/gas/write.c b/gas/write.c index 248255b3b6..1ae47a9009 100644 --- a/gas/write.c +++ b/gas/write.c @@ -1523,14 +1523,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED) return; memcpy (header, "ZLIB", 4); - header[11] = uncompressed_size; uncompressed_size >>= 8; - header[10] = uncompressed_size; uncompressed_size >>= 8; - header[9] = uncompressed_size; uncompressed_size >>= 8; - header[8] = uncompressed_size; uncompressed_size >>= 8; - header[7] = uncompressed_size; uncompressed_size >>= 8; - header[6] = uncompressed_size; uncompressed_size >>= 8; - header[5] = uncompressed_size; uncompressed_size >>= 8; - header[4] = uncompressed_size; + bfd_putb64 (uncompressed_size, header + 4); /* Replace the uncompressed frag list with the compressed frag list. */ seginfo->frchainP->frch_root = first_newf; -- 2.34.1