diff --git a/crates/clawhdf5-format/src/object_header.rs b/crates/clawhdf5-format/src/object_header.rs index afcb9c5..2045a4c 100644 --- a/crates/clawhdf5-format/src/object_header.rs +++ b/crates/clawhdf5-format/src/object_header.rs @@ -295,7 +295,13 @@ impl ObjectHeader { /// The messages of one version-1 chunk: each checked and appended to /// `messages` (NIL ones dropped), each continuation added to `spans`. /// Returns how many messages (NIL ones included) the chunk holds. - #[inline(never)] + /// + /// Inlined into the chunk loop: kept out of line (`#[inline(never)]`, + /// 4313917), the call cost `ObjectHeader::parse` about 2.5 ns per + /// header, 4% on small version-1 headers (A/B builds, 2026-09-27; see + /// `BENCHMARKS.md`). Without an attribute the compiler keeps it out of + /// line too. + #[inline] fn parse_v1_messages( data: &[u8], offset_size: u8,