On Mon, Apr 17, 2023 at 04:21:40PM +0000, Derrick Stolee via GitGitGadget wrote: > + for (size_t i = 0; i < p->num_objects; i++) { > + uint32_t nr = p->revindex[i].nr; > + uint32_t rev_val = get_be32(p->revindex_data + i); > + > + if (nr != rev_val) { > + error(_("invalid rev-index position at %"PRIu64": %"PRIu32" != %"PRIu32""), > + (uint64_t)i, nr, rev_val); > + res = -1; > + } > + } > + > + return res; Very clever. I thought about it for a while, and I am pretty confident that this is the cleanest you can get this loop to be. You could do something like building the forward index out of inverting the values in the .rev file, but everything I came up with based on that ended up being circular and not demonstrating anything interesting at all. Thanks, Taylor