# `object` Change Log
--------------------------------------------------------------------------------
## 0.28.4
Released 2022/05/09.
### Added
* Added `read::pe::DataDirectories::resource_directory`.
[#425](https://github.com/gimli-rs/object/pull/425)
[#427](https://github.com/gimli-rs/object/pull/427)
* Added PE support for more ARM relocations.
[#428](https://github.com/gimli-rs/object/pull/428)
* Added support for `Architecture::LoongArch64`.
[#430](https://github.com/gimli-rs/object/pull/430)
[#432](https://github.com/gimli-rs/object/pull/432)
* Added `elf::EF_MIPS_ABI` and associated constants.
[#433](https://github.com/gimli-rs/object/pull/433)
--------------------------------------------------------------------------------
## 0.28.3
Released 2022/01/19.
### Changed
* For the Mach-O support in `write::Object`, accept `RelocationKind::MachO` for all
architecures, and accept `RelocationKind::Absolute` for ARM64.
[#422](https://github.com/gimli-rs/object/pull/422)
### Added
* Added `pe::ImageDataDirectory::file_range`, `read::pe::SectionTable::pe_file_range_at`
and `pe::ImageSectionHeader::pe_file_range_at`.
[#421](https://github.com/gimli-rs/object/pull/421)
* Added `write::Object::add_coff_exports`.
[#423](https://github.com/gimli-rs/object/pull/423)
--------------------------------------------------------------------------------
## 0.28.2
Released 2022/01/09.
### Changed
* Ignored errors for the Wasm extended name section in `read::WasmFile::parse`.
[#408](https://github.com/gimli-rs/object/pull/408)
* Ignored errors for the COFF symbol table in `read::PeFile::parse`.
[#410](https://github.com/gimli-rs/object/pull/410)
* Fixed handling of `SectionFlags::Coff` in `write::Object::coff_write`.
[#412](https://github.com/gimli-rs/object/pull/412)
### Added
* Added `read::ObjectSegment::flags`.
[#416](https://github.com/gimli-rs/object/pull/416)
[#418](https://github.com/gimli-rs/object/pull/418)
--------------------------------------------------------------------------------
## 0.28.1
Released 2021/12/12.
### Changed
* Fixed `read::elf::SymbolTable::shndx_section`.
[#405](https://github.com/gimli-rs/object/pull/405)
* Fixed build warnings.
[#405](https://github.com/gimli-rs/object/pull/405)
[#406](https://github.com/gimli-rs/object/pull/406)
--------------------------------------------------------------------------------
## 0.28.0
Released 2021/12/12.
### Breaking changes
* `write_core` feature no longer enables `std` support. Use `write_std` instead.
[#400](https://github.com/gimli-rs/object/pull/400)
* Multiple changes related to Mach-O split dyld cache support.
[#398](https://github.com/gimli-rs/object/pull/398)
### Added
* Added `write::pe::Writer::write_file_align`.
[#397](https://github.com/gimli-rs/object/pull/397)
* Added support for Mach-O split dyld cache.
[#398](https://github.com/gimli-rs/object/pull/398)
* Added support for `IMAGE_SCN_LNK_NRELOC_OVFL` when reading and writing COFF.
[#399](https://github.com/gimli-rs/object/pull/399)
* Added `write::elf::Writer::reserve_null_symbol_index`.
[#402](https://github.com/gimli-rs/object/pull/402)
--------------------------------------------------------------------------------
## 0.27.1
Released 2021/10/22.
### Changed
* Fixed build error with older Rust versions due to cargo resolver version.
--------------------------------------------------------------------------------
## 0.27.0
Released 2021/10/17.
### Breaking changes
* Changed `read::elf` to use `SectionIndex` instead of `usize` in more places.
[#341](https://github.com/gimli-rs/object/pull/341)
* Changed some `read::elf` section methods to additionally return the linked section index.
[#341](https://github.com/gimli-rs/object/pull/341)
* Changed `read::pe::ImageNtHeaders::parse` to return `DataDirectories` instead of a slice.
[#357](https://github.com/gimli-rs/object/pull/357)
* Deleted `value` parameter for `write:WritableBuffer::resize`.
[#369](https://github.com/gimli-rs/object/pull/369)
* Changed `write::Object` and `write::Section` to use `Cow` for section data.
This added a lifetime parameter, which existing users can set to `'static`.
[#370](https://github.com/gimli-rs/object/pull/370)
### Changed
* Fixed parsing when PE import directory has zero size.
[#341](https://github.com/gimli-rs/object/pull/341)
* Fixed parsing when PE import directory has zero for original first thunk.
[#385](https://github.com/gimli-rs/object/pull/385)
[#387](https://github.com/gimli-rs/object/pull/387)
* Fixed parsing when PE export directory has zero number of names.
[#353](https://github.com/gimli-rs/object/pull/353)
* Fixed parsing when PE export directory has zero number of names and addresses.
[#362](https://github.com/gimli-rs/object/pull/362)
* Fixed parsing when PE sections are contiguous.
[#354](https://github.com/gimli-rs/object/pull/354)
* Fixed `std` feature for `indexmap` dependency.
[#374](https://github.com/gimli-rs/object/pull/374)
* Fixed overflow in COFF section name offset parsing.
[#390](https://github.com/gimli-rs/object/pull/390)
### Added
* Added `name_bytes` methods to unified `read` traits.
[#351](https://github.com/gimli-rs/object/pull/351)
* Added `read::Object::kind`.
[#352](https://github.com/gimli-rs/object/pull/352)
* Added `read::elf::VersionTable` and related helpers.
[#341](https://github.com/gimli-rs/object/pull/341)
* Added `read::elf::SectionTable::dynamic` and related helpers.
[#345](https://github.com/gimli-rs/object/pull/345)
* Added `read::coff::SectionTable::max_section_file_offset`.
[#344](https://github.com/gimli-rs/object/pull/344)
* Added `read::pe::ExportTable` and related helpers.
[#349](https://github.com/gimli-rs/object/pull/349)
[#353](https://github.com/gimli-rs/object/pull/353)
* Added `read::pe::ImportTable` and related helpers.
[#357](https://github.com/gimli-rs/object/pull/357)
* Added `read::pe::DataDirectories` and related helpers.
[#357](https://github.com/gimli-rs/object/pull/357)
[#384](https://github.com/gimli-rs/object/pull/384)
* Added `read::pe::RichHeaderInfo` and related helpers.
[#375](https://github.com/gimli-rs/object/pull/375)
[#379](https://github.com/gimli-rs/object/pull/379)
* Added `read::pe::RelocationBlocks` and related helpers.
[#378](https://github.com/gimli-rs/object/pull/378)
* Added `write::elf::Writer`.
[#350](https://github.com/gimli-rs/object/pull/350)
* Added `write::pe::Writer`.
[#382](https://github.com/gimli-rs/object/pull/382)
[#388](https://github.com/gimli-rs/object/pull/388)
* Added `write::Section::data/data_mut`.
[#367](https://github.com/gimli-rs/object/pull/367)
* Added `write::Object::write_stream`.
[#369](https://github.com/gimli-rs/object/pull/369)
* Added MIPSr6 ELF header flag definitions.
[#372](https://github.com/gimli-rs/object/pull/372)
--------------------------------------------------------------------------------
## 0.26.2
Released 2021/08/28.
### Added
* Added support for 64-bit symbol table names to `read::archive`.
[#366](https://github.com/gimli-rs/object/pull/366)
--------------------------------------------------------------------------------
## 0.26.1
Released 2021/08/19.
### Changed
* Activate `memchr`'s `rustc-dep-of-std` feature
[#356](https://github.com/gimli-rs/object/pull/356)
--------------------------------------------------------------------------------
## 0.26.0
Released 2021/07/26.
### Breaking changes
* Changed `ReadRef::read_bytes_at_until` to accept a range parameter.
[#326](https://github.com/gimli-rs/object/pull/326)
* Added `ReadRef` type parameter to `read::StringTable` and types that
contain it. String table entries are now only read as required.
[#326](https://github.com/gimli-rs/object/pull/326)
* Changed result type of `read::elf::SectionHeader::data` and `data_as_array`.
[#332](https://github.com/gimli-rs/object/pull/332)
* Moved `pod::WritableBuffer` to `write::WritableBuffer`.
Renamed `WritableBuffer::extend` to `write_bytes`.
Added more provided methods to `WritableBuffer`.
[#335](https://github.com/gimli-rs/object/pull/335)
* Moved `pod::Bytes` to `read::Bytes`.
[#336](https://github.com/gimli-rs/object/pull/336)
* Added `is_mips64el` parameter to `elf::Rela64::r_info/set_r_info`.
[#337](https://github.com/gimli-rs/object/pull/337)
### Changed
* Removed `alloc` dependency when no features are enabled.
[#336](https://github.com/gimli-rs/object/pull/336)
### Added
* Added `read::pe::PeFile` methods: `section_table`, `data_directory`, and `data`.
[#324](https://github.com/gimli-rs/object/pull/324)
* Added more ELF definitions.
[#332](https://github.com/gimli-rs/object/pull/332)
* Added `read::elf::SectionTable` methods for hash tables and symbol version
information.
[#332](https://github.com/gimli-rs/object/pull/332)
* Added PE RISC-V definitions.
[#333](https://github.com/gimli-rs/object/pull/333)
* Added `WritableBuffer` implementation for `Vec`.
[#335](https://github.com/gimli-rs/object/pull/335)
--------------------------------------------------------------------------------
## 0.25.3
Released 2021/06/12.
### Added
* Added `RelocationEncoding::AArch64Call`.
[#322](https://github.com/gimli-rs/object/pull/322)
--------------------------------------------------------------------------------
## 0.25.2
Released 2021/06/04.
### Added
* Added `Architecture::X86_64_X32`.
[#320](https://github.com/gimli-rs/object/pull/320)
--------------------------------------------------------------------------------
## 0.25.1
Released 2021/06/03.
### Changed
* write: Fix choice of `SHT_REL` or `SHT_RELA` for most architectures.
[#318](https://github.com/gimli-rs/object/pull/318)
* write: Fix relocation encoding for MIPS64EL.
[#318](https://github.com/gimli-rs/object/pull/318)
--------------------------------------------------------------------------------
## 0.25.0
Released 2021/06/02.
### Breaking changes
* Added `non_exhaustive` to most public enums.
[#306](https://github.com/gimli-rs/object/pull/306)
* `MachHeader::parse` and `MachHeader::load_commands` now require a header offset.
[#304](https://github.com/gimli-rs/object/pull/304)
* Added `ReadRef::read_bytes_at_until`.
[#308](https://github.com/gimli-rs/object/pull/308)
* `PeFile::entry`, `PeSection::address` and `PeSegment::address` now return a
virtual address instead of a RVA.
[#315](https://github.com/gimli-rs/object/pull/315)
### Added
* Added `pod::from_bytes_mut`, `pod::slice_from_bytes_mut`, `pod::bytes_of_mut`,
and `pod::bytes_of_slice_mut`.
[#296](https://github.com/gimli-rs/object/pull/296)
[#297](https://github.com/gimli-rs/object/pull/297)
* Added `Object::pdb_info`.
[#298](https://github.com/gimli-rs/object/pull/298)
* Added `read::macho::DyldCache`, other associated definitions,
and support for these in the examples.
[#308](https://github.com/gimli-rs/object/pull/308)
* Added more architecture support.
[#303](https://github.com/gimli-rs/object/pull/303)
[#309](https://github.com/gimli-rs/object/pull/309)
* Derive more traits for enums.
[#311](https://github.com/gimli-rs/object/pull/311)
* Added `Object::relative_address_base`.
[#315](https://github.com/gimli-rs/object/pull/315)
### Changed
* Improved performance for string parsing.
[#302](https://github.com/gimli-rs/object/pull/302)
* `objdump` example allows selecting container members.
[#308](https://github.com/gimli-rs/object/pull/308)