[PATCH v3 09/19] midx: teach `nth_midxed_offset()` about incremental MIDXs
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Aug 6, 2024, 15:37 UTC
- Message-ID
- <761c7c59ba1a245732d86a4e1d6c24baf742a1cb.1722958596.git.me@ttaylorr.com>
- In-Reply-To
- <cover.1722958595.git.me@ttaylorr.com>
In a similar fashion as in previous commits, teach the function `nth_midxed_offset()` about incremental MIDXs.
The given object `pos` is used to find the containing MIDX, and translated back into a MIDX-local position by assigning the return value of `midx_for_object()` to it.
Signed-off-by: Taylor Blau <me@ttaylorr.com> --- midx.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/midx.c b/midx.c index 83857cbd1e..346e58dec7 100644 --- a/midx.c +++ b/midx.c @@ -369,6 +369,8 @@ off_t nth_midxed_offset(struct multi_pack_index *m, uint32_t pos) const unsigned char *offset_data; uint32_t offset32; + pos = midx_for_object(&m, pos); + offset_data = m->chunk_object_offsets + (off_t)pos * MIDX_CHUNK_OFFSET_WIDTH; offset32 = get_be32(offset_data + sizeof(uint32_t));
-- 2.46.0.46.g406f326d27.dirty