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.
This commit is contained in:
H.J. Lu
2015-04-06 09:01:43 -07:00
parent fd5136e57c
commit 4aa90cc007
4 changed files with 16 additions and 39 deletions

View File

@ -1,3 +1,11 @@
2015-04-06 H.J. Lu <hongjiu.lu@intel.com>
* 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 <hongjiu.lu@intel.com> 2015-04-04 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (_bfd_elf_init_private_section_data): Also preserve the * elf.c (_bfd_elf_init_private_section_data): Also preserve the

View File

@ -59,27 +59,6 @@ decompress_contents (bfd_byte *compressed_buffer,
return rc == Z_OK && strm.avail_out == 0; 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} /* Compress data of the size specified in @var{uncompressed_size}
and pointed to by @var{uncompressed_buffer} using zlib and store and pointed to by @var{uncompressed_buffer} using zlib and store
as the contents field. This function assumes the contents 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 /* Write the zlib header. In this case, it should be "ZLIB" followed
by the uncompressed section size, 8 bytes in big-endian order. */ by the uncompressed section size, 8 bytes in big-endian order. */
memcpy (compressed_buffer, "ZLIB", 4); memcpy (compressed_buffer, "ZLIB", 4);
compressed_buffer[11] = uncompressed_size; uncompressed_size >>= 8; bfd_putb64 (uncompressed_size, compressed_buffer + 4);
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;
free (uncompressed_buffer); free (uncompressed_buffer);
sec->contents = compressed_buffer; sec->contents = compressed_buffer;
sec->size = compressed_size; sec->size = compressed_size;
@ -368,7 +339,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
return FALSE; return FALSE;
} }
uncompressed_size = get_uncompressed_size (compressed_buffer + 4); uncompressed_size = bfd_getb64 (compressed_buffer + 4);
sec->compressed_size = sec->size; sec->compressed_size = sec->size;
sec->size = uncompressed_size; sec->size = uncompressed_size;
sec->compress_status = DECOMPRESS_SECTION_SIZED; sec->compress_status = DECOMPRESS_SECTION_SIZED;

View File

@ -1,3 +1,8 @@
2015-04-06 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Use bfd_putb64 to write uncompressed
section size.
2015-04-05 H.J. Lu <hongjiu.lu@intel.com> 2015-04-05 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Don't write the zlib header if * write.c (compress_debug): Don't write the zlib header if

View File

@ -1523,14 +1523,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
return; return;
memcpy (header, "ZLIB", 4); memcpy (header, "ZLIB", 4);
header[11] = uncompressed_size; uncompressed_size >>= 8; bfd_putb64 (uncompressed_size, header + 4);
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;
/* Replace the uncompressed frag list with the compressed frag list. */ /* Replace the uncompressed frag list with the compressed frag list. */
seginfo->frchainP->frch_root = first_newf; seginfo->frchainP->frch_root = first_newf;